這篇文章主要介紹了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['name']) neq 'THINKPHP' "> ThinkPHP <else /> other Framework </if>
condition屬性可以支援點語法和物件語法,例如:
自動判斷user變數是陣列還是物件
複製程式碼 程式碼如下:
<if condition="$user.name neq 'ThinkPHP' "> ThinkPHP <else /> other Framework </if>
或知道user變數是物件
複製程式碼 程式碼如下:
<if condition="$user:name neq 'ThinkPHP' "> 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('Cate'); $Cate=$Cate->where('id='.$cid)->find(); return $Cate['title']; }
我想在模板中調用這個函數則在模板中可以這樣寫
#複製代碼 代碼如下:
{$vo.cid|cate=###}
注意:自定義函數要放在專案應用程式目錄/common/common.php中。這裡是關鍵。
說明:
{ 和$ 符號之間不能有空格,後面參數的空格就沒有問題;
表示模板變數本身的參數位置;
支援多個函數,函數之間支援空格;
支援函數屏蔽功能,在設定檔中可以配置禁止使用的函數列表;
#####################################################
以上是ThinkPHP模板之變數輸出、自訂函數與判斷語句用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!