thinkphp フロントエンド HTML 呼び出し関数の書式設定された出力_PHP チュートリアル

WBOY
リリース: 2016-07-13 17:53:55
オリジナル
951 人が閲覧しました

変数を出力するだけでは、テンプレート出力のニーズを満たせません。実際、組み込みのテンプレート エンジンは、テンプレート変数のレギュレーターと書式設定関数の使用をサポートしており、複数の関数の同時使用をサポートしています。テンプレートタグに使用する関数は、smarty とは異なり、PHP 組み込み関数またはユーザー定義関数を使用できます。テンプレートに使用する関数を特別に定義する必要はありません。

テンプレート変数の関数呼び出し形式は次​​のとおりです:


XML/HTML コード


{$varname|function1|function2=arg1,arg2,### }


説明:

{ と $ 記号の間にはスペースを入れることはできません。また、次のパラメーターにスペースを入れても問題ありません

###はテンプレート変数自体のパラメータ位置を表します

複数の関数と関数間のスペースをサポート

機能シールド機能をサポートし、禁止される機能のリストを設定ファイルで設定可能

変数キャッシュ機能をサポートしており、繰り返される変数文字列は複数回解析されません

使用例:


XML/HTML コード


{$webTitle|md5|strtoupper|substr=0,3}


コンパイルされた PHP コードは次のとおりです:


PHPコード


関数の定義と使用順序の対応に注意してください。一般に、関数の最初のパラメータは前の変数、または変数が関数の最初のパラメータではない場合は、前の関数の結果になります。位置決め記号を使用する必要があります。例:

XML/HTML コード

{$create_time|date="y-m-d",###}

コンパイルされた PHP は次のとおりです:

PHPコード


使用する関数の数に制限はありませんが、TMPL_DENY_FUNC_LIST を構成して、無効な関数のリストを定義することで、テンプレート出力への損傷を防ぐために、システムはデフォルトで exit 関数と echo 関数を無効にすることができます。


TMPL_DENY_FUNC_LIST=>「エコー、終了、停止」

複数の関数を区切るには半角カンマを使用します。

また、テンプレート変数を渡さずにテンプレート ファイル内で関数を直接呼び出すためのショートカット メソッドも提供します。これには、次の 2 つのメソッドが含まれます:

1. メソッドを実行し、戻り値を出力します:

形式: {:function(…)}

たとえば、U メソッドの戻り値を出力します:

XML/HTML コード


{:U('ユーザー/挿入')}


コンパイルされたPHPコードは次のとおりです

PHPコード



2. 出力なしでメソッドを実行します:

形式: {~function(…)}

たとえば、say_hello 関数を呼び出します:

XML/HTML コード


{~say_hello('ThinkPHP')}


コンパイルされた PHP コードは次のとおりです:


PHPコード


たとえば、私のカスタム関数は次のようになります
関数カテゴリ($cid)

{


$Category=D("カテゴリ");

$Category=$Category->where('id='.$cid)->find();

return $Category['title'];

}
テンプレート内でこの関数を呼び出したい場合は、テンプレート内で次のように記述できます
{$vo.cid|category=###}
もちろん、カスタム関数はプロジェクトディレクトリ/Common/common.phpに配置する必要があります



実際のプロジェクトでは、ラベル変数に対して加算および減算演算を実行する必要があることがよくあります。ただし、ThinkPHP では、テンプレート変数の直接操作はサポートされていません。

幸いなことに、カスタム関数のメソッドが提供されており、カスタム関数を使用して解決できます。 ThinkPHP テンプレートのカスタム関数の構文は次のとおりです:

形式: {:function(…)} (公式ヘルプドキュメントを参照: http://thinkphp.cn/Manual/196)

これを使って足し算や引き算をしてみましょう。

ThinkPHP で関数を定義します。プロジェクトの common フォルダーに新しい common.php ファイルを作成します (システムによって自動的にロードされます)。 2 つの関数を定義します:


01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

関数

template_add($a,$b){

echo(intval($a)+intval($b));

}

関数

template_substract($a,$b){

echo(intval($a)-intval($b));

}

テンプレートでの関数の使用:

{:template_add($var1,$var2)}

変数 var1 と var2 の合計を表示できます。

Commonディレクトリのcommon.phpにカスタム関数を置き、呼び出せない場合はファイル名をcommon.class.phpに変更してimport(@.common.common)を定義します

www.bkjia.com本当http://www.bkjia.com/PHPjc/477992.html技術記事単に変数を出力するだけでは、テンプレート出力のニーズを満たすことはできません。組み込みのテンプレート エンジンは、テンプレート変数のレギュレーターと書式設定関数の使用をサポートしており、複数の関数をサポートしています。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート