ThinkPHP模板之變數輸出、自訂函數與判斷語句用法

不言
發布: 2023-03-30 09:06:01
原創
1845 人瀏覽過

這篇文章主要介紹了ThinkPHP模板之變量輸出、自訂函數與判斷語句用法,是關於ThinkPHP模板操作中非常實用的技巧,需要的朋友可以參考下

本文實例講述了ThinkPHP模板之變數輸出、自訂函數與判斷語句用法。主要包括變數輸出、自訂函數與判斷語句三種用法。分享給大家供大家參考。具體分析如下:

範本操作變數輸出:

快速輸出變數

#複製程式碼 程式碼如下:

{: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>
登入後複製

在condition屬性中可以支援eq等判斷表達式,同上面的比較標籤,但是不支援帶有”> 」、”<」等符號的用法,因為會混淆模板解析,所以下面的用法是錯誤的:

<if condition="$id < 5 "> value1
<else /> value2
</if>
登入後複製

必須改成:

複製程式碼 程式碼如下:

<if condition="$id lt 5 "> value1
<else /> value2
</if>
登入後複製

除此之外,我們可以在condition屬性裡面使用php程式碼,例如:

複製程式碼 程式碼如下:

<if condition="strtoupper($user[&#39;name&#39;]) neq &#39;THINKPHP&#39; "> ThinkPHP
<else /> other Framework
</if>
登入後複製

condition屬性可以支援點語法和物件語法,例如:
自動判斷user變數是陣列還是物件

複製程式碼 程式碼如下:

<if condition="$user.name neq &#39;ThinkPHP&#39; "> ThinkPHP
<else /> other Framework
</if>
登入後複製

或知道user變數是物件

複製程式碼 程式碼如下:

<if condition="$user:name neq &#39;ThinkPHP&#39; "> ThinkPHP
<else /> other Framework
</if>
登入後複製

由於if標籤的condition屬性裡面基本上使用的是php語法,盡可能使用判斷標籤和Switch標籤會更簡潔,原則上來說,能夠用switch和比較標籤解決的盡量不用if標籤完成。因為switch和比較標籤可以使用變數調節器和系統變數。如果某些特殊的要求下面,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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板