CleverCode發現smarty中呼叫php內建函數可以透過|實作。 |前後沒有空格。如果是數組求count需要加上@。
1個參數時候:##{{'param1'|functionName}}
例如
{{$tmpStr|
strlen#}}
2個參數時候:##{{'param1'|functionName:'param2'}}{$tmpStr|substr:'1'}
多個參數時候:
{{'param1'|functionName:'param2':'param3'..}} {{$tmpStr|substr:'1':' 2'}}
{{'a'|
str_replace
:'A':$tmpStr}}
#1 marty判斷是否為空
如下程式碼php分配給tmpStr為空或沒分配;那麼smarty中輸出0。這是呼叫了php的內建函數strlen
php程式碼
:
$smarty->assign('tmpStr','');
smarty程式碼:
{{if $tmpStr|strlen > 0 }} 1{{else}} 0{{/if}}
#2 marty求數組長度
透過php內建的函數is_array和count求得陣列長度,如下的程式碼輸出5
php程式碼:
#$smarty->assign('tmpArr',array(1,2,3,4,5));
smarty程式碼:
{{if $tmpArr|is_array && $tmpArr|@count > 0}}
{{$tmpArr|@count}}
{{else}}
0########################################################################################################################################################################################################################## ###{{/if}}##################3 marty###字串###替換########如下的程式碼是將tmpStr中的b替換為c###$smarty->assign('tmpStr','abb');###{{'b'|str_replace:'c':$tmpStr}}#### #####輸出:acc##################4 marty截取欄位#########$smarty->assign('tmpStr', 'abb');######{{$tmpStr|substr:'1'}} ####輸出:bb######{{$tmpStr|substr:'1':'1'} }###輸出:b###
以上是smarty中怎麼呼叫php內建函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!