smarty中的内建函数(二)if、section

来源:互联网 发布:淘宝steam十大黑店 编辑:程序博客网 时间:2024/05/17 21:55

接smarty中的内建函数(一)

7、if,elseif,else

主要根据条件来决定处理的方式

[php] view plain copy
 print?
  1. $role = '1';  
  2. $smarty->assign('role',$role);  
[html] view plain copy
 print?
  1. <{if $role =='1'}>  
  2. role_1  
  3. <{elseif $role == 2}>  
  4. role_2  
  5. <{else}>  
  6. no_role  
  7. <{/if}>  
结果:role_1

eq(相等)、ne(不相等)、neq(不相等)、gt(大于)、lt(小于)、lte(小于等于)、le(小于等于)、gte(大于等于)、ge(大于等于)、is even(是否是偶数)、is odd(是否是奇数)、is not even(是否是偶数)、is not odd(是否是奇数)、not(非/反)、mod(求模)、div by($a/$b整除)、even by($a/$b%2==0,相除再判断是否是偶数)、odd by(相除再判断是否是奇数)、===(相等包括类型)、==、!=、>、<、<=、>=

8、ldelim,rdelim

用于输出分隔符 { },ldelim左分隔符,rdelim右分隔符

[html] view plain copy
 print?
  1. <{$role}><{*输出$role的值,如15*}>  
  2. <{ldelim}>$role<{rdelim}><{*输出:<{$role}>,不会再次解析,会当字符串输出*}>  
9、literal

在<{literal}><{/literal}>中的内容不会解析,当作文本处理

10、PHP

<{php}><{/php}>之间可以嵌入Php代码

11、section,sectionelse

主要用于遍历数组,效率、功能都比foreach强

[php] view plain copy
 print?
  1. $arr = array(  
  2.     array(  
  3.         'id' => '000001',  
  4.         'title' => 'aaaaaa',  
  5.         'name' => 'zhao',  
  6.     ),  
  7.     array(  
  8.         'id' => '000002',  
  9.         'name' => 'qian',  
  10.     ),  
  11.     array(  
  12.         'id' => '000003',  
  13.         'name' => 'sun',  
  14.     ),  
  15.     array(  
  16.         'id' => '000004',  
  17.         'name' => 'li',  
  18.     ),  
  19. );  
  20.   
  21. $smarty->assign('arr',$arr);  
  22.   
  23. $smarty->display('new.html');  
[html] view plain copy
 print?
  1. <{*  
  2.     name,必选,循环的名称,代表本次循环的数组下标  
  3.     loop,必选,循环数据的来源  
  4.     start,可选,循环开始位置,下标从0开始  
  5.     step,可选,步长,若为负,遍历从后向前  
  6.     max,可选,最大循环次数  
  7.     show,可选,是否显示循环  
  8. *}>  
  9. <{section name=suse loop=$arr start=1}>  
  10.     <{*start=1从数组的第二个元素开始循环 show=false,下面的输出不显示*}>  
  11.     <{if $smarty.section.suse.first}>  
  12.         第一次循环<br>  
  13.     <{/if}>  
  14.     <{if $smarty.section.suse.last}>  
  15.         最后一次循环<br>  
  16.     <{/if}>  
  17.     本次索引:<{$smarty.section.suse.index}><{*当前循环的索引,从0开始,如果指定了start,则从start开始*}>  
  18.     上次索引:<{$smarty.section.suse.index_prev}><{*上一个循环的索引*}>  
  19.     下次索引:<{$smarty.section.suse.index_next}><{*下一个循环的索引*}>  
  20.     执行到本次的循环次数:<{$smarty.section.suse.iteration}><{*真实循环次数,不受step,start,max的影响,与rownum相同*}>  
  21.     id:<{$arr[suse].id}>  
  22.     name:<{$arr[suse].name}><br>  
  23. <{sectionelse}><{*loop变量没有值的时候被执行*}>  
  24.     none  
  25. <{/section}>  
  26. <br>  
  27. 上面一共执行了 <{$smarty.section.suse.total}> 次循环。  

结果:

12、strip

<{strip}><{/strip}>,显示前删除strip之间数据中的首尾空格和换行

1
0 0