CleverCode found that calling phpbuilt-in functions in smarty can be achieved through |. |No spaces before and after. If it is an array, you need to add @ to find the count.
When there are 1 parameters:
{{'param1'|functionName}}
For example,
{{$tmpStr| strlen }}
When there are 2 parameters:
{{'param1'|functionName:'param2'}} {$tmpStr|substr:'1'}
When there are multiple parameters:
{{'param1'|functionName:'param2':'param3'..}} {{$tmpStr|substr:'1':'2'}} {{'a'|str_replace:'A':$tmpStr}}
The following code The tmpStr allocated by php is empty or not allocated; then smarty outputs 0. This is calling PHP's built-in function strlen
php code:
$smarty->assign('tmpStr',''); smarty代码: {{if $tmpStr|strlen > 0 }} 1 {{else}} 0 {{/if}}
Get the array length through PHP's built-in functions is_array and count. The following code outputs 5
php code:
$smarty->assign('tmpArr',array(1,2,3,4,5));
smarty code:
{{if $tmpArr|is_array && $tmpArr|@count > 0}} {{$tmpArr|@count}}{{else}} 0 {{/if}}
The following code replaces b in tmpStr with c
$smarty->assign('tmpStr','abb'); {{'b'|str_replace:'c':$tmpStr}}
Output:
acc
$smarty->assign('tmpStr','abb'); {{$tmpStr|substr:'1'}}
Output:
bb
{{$tmpStr|substr:'1':'1'}}
Output:
b
The above is the detailed content of Example sharing of how to call PHP built-in functions in smarty. For more information, please follow other related articles on the PHP Chinese website!