ThinkPHP テンプレート変数の出力、カスタム関数、および判定ステートメントの使用法

不言
リリース: 2023-03-30 09:06:01
オリジナル
1844 人が閲覧しました

この記事では、ThinkPHP テンプレートの変数出力、カスタム関数、および判定ステートメントの使用法を主に紹介します。これは、ThinkPHP テンプレートを操作する上で非常に実践的なスキルです。この記事の例は、変数について説明しています。 ThinkPHP テンプレートの出力と使用法、カスタム関数と判定ステートメントの使用法。主に変数出力、カスタム関数、判定文の 3 つの用途があります。皆さんの参考に共有してください。具体的な分析は次のとおりです:

テンプレート操作変数の出力:

クイック出力変数

コードをコピー

コードは次のとおりです:

{:function(…)} //执行方法并输出返回值
{~function} //执行方法不输出
{@var} //输出Session变量
{#var} //输出Cookie变量
{&var} //输出配置参数  
{%var} //输出语言变量
{.var} //输出GET变量
{^var} //输出POST变量
{*var} //输出常量
ログイン後にコピー
テンプレートの出力


コードをコピー

コードは次のとおりです:

//1 直接调用index操作模板
$this->display();
// 对应Myapp/Tpl/default/Index/index.html
//2 调用Index模块的test1操作模板
$this->display('test1');
//对应Myapp/Tpl/default/Index/test1.html
//2 调用Message模块的test2操作模板()
$this->display('Message:test2');
//对应Myapp/Tpl/default/Message/test2.html
//3 调用XP主题的Message模块的test2操作模板
$this->display('Xp@Message:test2');
//对应Myapp/Tpl/Xp/Message/test2.html
//4 直接指定模板文件的全名
$this->display('../Message/test3.html');
//对应Myapp/Tpl/default/Message/test3.html
ログイン後にコピー
判定ステートメントを使用する

if タグを使用して、複雑な条件判定を定義できます。例:

コードをコピー

コードは次のとおりです:

<if condition="($name eq 1) OR ($name gt 100) "> value1
<elseif condition="$name eq 2" />value2
<else /> value3
</if>
ログイン後にコピー
条件属性は、eq などの判定式をサポートできます。上記の比較タグと同じですが、「>」はサポートされていません。「、<」などの記号の使用はテンプレートの解析を混乱させるため、次の使用法は間違っています:

<if condition="$id < 5 "> value1
<else /> value2
</if>
ログイン後にコピー

は次のように変更する必要があります:


コードをコピーします

コードは次のとおりです:

<if condition="$id lt 5 "> value1
<else /> value2
</if>
ログイン後にコピー
さらに、条件属性で php コードを使用できます。たとえば:

コードをコピーします

コードは次のとおりです:

<if condition="strtoupper($user[&#39;name&#39;]) neq &#39;THINKPHP&#39; "> ThinkPHP
<else /> other Framework
</if>
ログイン後にコピー
条件属性はサポートできますドット構文とオブジェクト構文の例:

ユーザー変数が配列かオブジェクトかを自動的に判断する


コードをコピーする

コードは次のとおりです:

<if condition="$user.name neq &#39;ThinkPHP&#39; "> ThinkPHP
<else /> other Framework
</if>
ログイン後にコピー
または、ユーザー変数がオブジェクトであることがわかっています

コードをコピーします

コードは以下の通りです:

<if condition="$user:name neq &#39;ThinkPHP&#39; "> ThinkPHP
<else /> other Framework
</if>
ログイン後にコピー
ifタグのcondition属性は基本的にPHP構文を使用するので、できるだけ判定タグやSwitchタグを使用する で解決できれば、原理的にはより簡潔になります。 switch タグと比較タグ、if タグは使用しないようにしてください。スイッチタグと比較タグでは変数修飾子とシステム変数を使用できるためです。 IF タグが依然として特定の特別な要件を満たせない場合は、ネイティブ PHP コードまたは PHP タグを使用してコードを直接記述することができます。

eq に等しい (==)

neq に等しくない (!=)

gt より大きい (>)
egt より大きいか等しい (>=)
lt より小さい (<)
elt より小さい(<=)
heq と常に等しい (===)
nheq と等しくない (!==)
condition 条件
注意
condition 属性値、変数には $ 記号が必要であり、これは他の変数とは異なりますタグ。

カスタム関数の使い方

テンプレート変数の関数呼び出し形式: {$varname|function1|function2=arg1, arg2, ###}

使用例:


コードをコピー

コードは以下の通りです。

{$webTitle|md5|strtoupper|substr=0,3} 
{$number|number_format=2} 
{$varname|function1|function2=arg1,arg2,### }
ログイン後にコピー
例は次のとおりです:

コードをコピーします

コードは次のとおりです:

function Cate($cid){ 
$Cate=D(&#39;Cate&#39;); 
$Cate=$Cate->where(&#39;id=&#39;.$cid)->find(); 
return $Cate[&#39;title&#39;]; 
}
ログイン後にコピー
テンプレートでこの関数を呼び出したい場合は、テンプレートで次のように記述できます


コピーコード

コードは次のとおりです:

{$vo.cid|cate=###}
ログイン後にコピー
注: カスタム関数が必要です。 プロジェクトのアプリケーション ディレクトリ/common/common.php に配置します。 ここが鍵です。

注:

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

### はテンプレート変数自体のパラメーターの位置を表し、スペースは複数の関数をサポートします。関数間でサポートされます。
関数シールド機能をサポートします。設定ファイルで禁止された関数のリストを設定できます。
変数キャッシュ機能をサポートし、繰り返される変数文字列は複数回解析されません。

関連する推奨事項:

ThinkPHP テンプレートの置換とシステム定数とアプリケーション例

以上がThinkPHP テンプレート変数の出力、カスタム関数、および判定ステートメントの使用法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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