smarty中调用php内置函数

WBOY
Freigeben: 2016-06-23 13:20:54
Original
1278 Leute haben es durchsucht

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
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage