php之smarty学习三

来源:互联网 发布:淘宝衣服商标被撕掉 编辑:程序博客网 时间:2024/04/30 01:26

模板中的逻辑控制:从MVC的角度看,在模板中加逻辑控制是不正确的,但是,有时,不同的场景下,模板的差异非常小,就比较适合在莫办理加逻辑控制,可以减少模板的数量。

IF控制结构

{if 表达式}

...

...

{/if}

if else 控制结构

{if 表达式}

...

...

{else}

...

...

{/if}

if elseif 控制结构

{if表达式}

...

...

{else if 表达式}

...

...

{/if}

smarty中的foreach控制结构

要循环谁:某个数组A

当前循环的单元的键赋给哪个临时变量 B

当前循环的单元的值赋给哪个临时变量C

{foreach from $A key=B item=C}

...

...

{/foreach}

smarty->_foreach属性,是一个数组,如果smarty的foreach有name属性,设name="abc",则smarty->_foreach['abc']=array(total=>循环体个数,iteration=>0),然后每循环一次,iteration递增1

可以引用$smarty.foreach.foreachname.key的属性

key=

total=循环个数

iteration=当前循环次数

index=当前索引,iteration-1

first:判断是否是第一次循环

last:判断时否是最后一次循环

注意:foreach的name不能重复

foreach中的key=k,item=v会影响同名的标签,请注意,标签不要和foreach中的标签同名

smarty中数学运算,比较运算,逻辑运算

smarty比较运算符

>,<,>=,<=,!=,==和php中一样

smarty对比较运算符做了一个扩充

如gt(>),lt(<),gte(>=),eq(==)

左右看到比较运算符的扩充情况

|| && or and

标签中可以进行数学运算,+,-,*,/,%,但是注意,运算符两边不要有空格,运算表达式应以标签开头

smarty中的变量调节器

例如:{$intro|upper}会把$intro的内容转换为大写

原理:把$intro作为参数,传给upper调节器对应的函数,并显示该函数值,而不是$intro

标签变量本身会当成调节器的第一个参数自动传入,如果需要传更多参数,在调节器后面用‘:’隔开更多参数,例如:{$news|truncate:7:"..."}

常用变量调节器

date_format:格式化日期

default:默认值

escape:编码

indent:缩进

lower:小写

nl2br:换行符替换成<br/>

replace:替换

strip:去除多余空格

strip_tags:去除html标签

upper:大写

0 0
原创粉丝点击