ホームページ > バックエンド開発 > PHPチュートリアル > Smartyの登録機能についてアドバイスをお願いします

Smartyの登録機能についてアドバイスをお願いします

WBOY
リリース: 2016-06-23 13:52:04
オリジナル
786 人が閲覧しました

Smartyの登録機能について質問です。

$smarty->register_function('dateline', 'handle_dateline'); //これは登録関数です。最初のパラメータは何を意味しますか?

function handle_dateline($params, &$smarty) {} //これは登録された関数です。これら 2 つのパラメータは何を意味しますか?

関数を登録すると関数が実行されますか?関数を呼び出すのと似ていますか?


ディスカッションへの返信 (解決策)

$smarty->register_function(' dateline', 'handle_dateline')

dateline は、
{dateline time="$time" などのテンプレートで使用される名前です
format ="Y-m-d"}
の代わりに
{handle_dateline time="$time" format="Y-m-d"}
はは、それはあなた自身のせいです

function handle_dateline($params, &$smarty) {}
$params が渡されましたたとえば、上記の例には 2 つの要素があります
extract($params);
echo date($format,$time);

$smarty Smarty オブジェクト自体は次のように記述できます。関数本体で $smarty のプロパティとメソッドにアクセスする必要があります

$smarty->register_function(' dateline', 'handle_dateline');

dateline はテンプレートで使用される名前です

{ dateline time="$time" format="Y-m-d"}

こんにちは、このように、
$smarty->register_function('dateline', 'handle_dateline')

は関数 handle_dateline($params) にパラメータを渡しません。 、&$smarty) {} ? ?
登録された関数の上のステートメントにより、関数「function handle_dateline($params, &$smarty) {}」が実行されますか?

は実行されません。関数を登録するだけであり、この時点でパラメーターも渡されます。

は実行されません。関数を登録するだけで、テンプレート内で呼び出したときにのみ実行されます。この時点でパラメーターも渡されます。

パラメータは呼び出されたときにのみ渡されます。つまり、登録された関数とは何の関係もありません。では、登録関数は何に役立つのでしょうか? ?単にtplに値を表示するだけなのでしょうか?

登録の目的は、Smarty に彼を見つけてもらうことです。そうしないと、何か問題が発生します。
率直に言うと、tpl で呼び出す関数を登録するだけです。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート