WIKI使用導(dǎo)航
站長(zhǎng)百科導(dǎo)航
站長(zhǎng)專題
- 網(wǎng)站推廣
- 網(wǎng)站程序
- 網(wǎng)站賺錢
- 虛擬主機(jī)
- cPanel
- 網(wǎng)址導(dǎo)航專題
- 云計(jì)算
- 微博營(yíng)銷
- 虛擬主機(jī)管理系統(tǒng)
- 開放平臺(tái)
- WIKI程序與應(yīng)用
- 美國(guó)十大主機(jī)
ThinkPHP-模板指南-使用函數(shù)
導(dǎo)航:返回上一頁
僅僅是輸出變量并不能滿足模板輸出的需要,內(nèi)置模板引擎支持對(duì)模板變量使用調(diào)節(jié)器和格式化功能,其實(shí)也就是提供函數(shù)支持,并支持多個(gè)函數(shù)同時(shí)使用。用于模板標(biāo)簽的函數(shù)可以是PHP內(nèi)置函數(shù)或者是用戶自定義函數(shù),和smarty不同,用于模板的函數(shù)不需要特別的定義。
模板變量的函數(shù)調(diào)用格式為:
{$varname|function1|function2=arg1,arg2,### }
說明:
- { 和 $ 符號(hào)之間不能有空格 ,后面參數(shù)的空格就沒有問題
- ###表示模板變量本身的參數(shù)位置
- 支持多個(gè)函數(shù),函數(shù)之間支持空格
- 支持函數(shù)屏蔽功能,在配置文件中可以配置禁止使用的函數(shù)列表
- 支持變量緩存功能,重復(fù)變量字串不多次解析
使用例子: XML/HTML代碼
{$webTitle|md5|strtoupper|substr=0,3}
編譯后的PHP代碼就是:
PHP代碼
<?php echo (substr(strtoupper(md5($webTitle)),0,3)); ?>
注意函數(shù)的定義和使用順序的對(duì)應(yīng)關(guān)系,通常來說函數(shù)的第一個(gè)參數(shù)就是前面的變量或者前一個(gè)函數(shù)使用的結(jié)果,如果你的變量并不是函數(shù)的第一個(gè)參數(shù),需要使用定位符號(hào),例如:
XML/HTML代碼{$create_time|date="y-m-d",###}
編譯后的PHP是:
PHP代碼
<?php echo (date("y-m-d",$create_time)); ?>
函數(shù)的使用沒有個(gè)數(shù)限制,但是可以允許配置TMPL_DENY_FUNC_LIST定義禁用函數(shù)列表,系統(tǒng)默認(rèn)禁用了exit和echo函數(shù),以防止破壞模板輸出,我們也可以增加額外的定義,例如:TMPL_DENY_FUNC_LIST=>"echo,exit,halt".多個(gè)函數(shù)之間使用半角逗號(hào)分隔即可。
并且還提供了在模板文件中直接調(diào)用函數(shù)的快捷方法,無需通過模板變量,包括兩種方式:
- 執(zhí)行方法并輸出返回值:
格式:{:function(…)}
例如,輸出U方法的返回值:
XML/HTML代碼{:U('User/insert')}
編譯后的PHP代碼是
PHP代碼
<?php echo U('User/insert');?>
- 執(zhí)行方法但不輸出:
格式:{~function(…)}
例如,調(diào)用say_hello函數(shù):
XML/HTML代碼:{~say_hello('ThinkPHP')}
編譯后的PHP代碼是:
PHP代碼
<?php say_hello('ThinkPHP');?>