僅僅是輸出變量並不能滿足模板輸出的需要,內置模板引擎支持對模板變量使用調節器和格式化功能,其實也就是提供函數支持,並支持多個函數同時使用。用於模板標簽的函數可以是PHP內置函數或者是用戶自定義函數,和smarty不同,用於模板的函數不需要特別的定義。
模板變量的函數調用格式為:
說明:
{ 和 $ 符號之間不能有空格 ,後面參數的空格就沒有問題
###表示模板變量本身的參數位置
支持多個函數,函數之間支持空格
支持函數屏蔽功能,在配置文件中可以配置禁止使用的函數列表
支持變量緩存功能,重復變量字串不多次解析
使用例子:
編譯後的PHP代碼就是:
注意函數的定義和使用順序的對應關系,通常來說函數的第一個參數就是前面的變量或者前一個函數使用的結果,如果你的變量並不是函數的第一個參數,需要使用定位符號,例如:
編譯後的PHP是:
函數的使用沒有個數限制,但是可以允許配置TMPL_DENY_FUNC_LIST定義禁用函數列表,系統默認禁用了exit和echo函數,以防止破壞模板輸出,我們也可以增加額外的定義,例如:
TMPL_DENY_FUNC_LIST=>echo,exit,halt
多個函數之間使用半角逗號分隔即可。
並且還提供了在模板文件中直接調用函數的快捷方法,無需通過模板變量,包括兩種方式:
1、執行方法並輸出返回值:
格式:{:function(…)}
例如,輸出U方法的返回值:
編譯後的PHP代碼是
2、執行方法但不輸出:
格式:{~function(…)}
例如,調用say_hello函數:
編譯後的PHP代碼是: