{assign} 局部注册变量
{assign}用于在模板运行期间赋值给变量,使用该标签注册的变量仅为局部使用。
全局注册 请查阅{global} 全局注册变量标签。
在模板中进行赋值,从根本上讲还是将程序逻辑放到显示层来进行了,在php端进行此操作会更好。请自行考虑。
assign 可以使用表达式方式赋值变量,或者 使用 属性方式:
表达式方式
$name='value'
属性方式:
var : 需要注册的变量名称,只可以是 字母数字下划线 。
value: 赋值的值。
如:
{assign $name='sdopx'}
The value of $name is {$name}.
{assign var=myname value='wj008'}
The value of $myname is {$myname}.
{assign var=data value=['name'=>'wj008','sex'=>'男']}
{assign $data.email='sdopx@xxx.com'}
名字:{$data.name},性别:{$data['sex']},邮箱:{$data.email}
这里的变量只在当前页面使用,不可跨页面,比如{include} {extends } 进来的页面不可以使用,具有作用域保护。
拼接赋值:
{assign var=name value='Bob'}
{assign $hello=`hello {$name}`}
{$hello}.
运算赋值:
{assign $a=3}
{assign $b=4}
{assign $c=$a+$b}
{$a}+{$b}={$c}.
自增自减:
{assign $a=3}
{assign $a++} --4--:
{$a}
{assign $a+=2} --6--:
{$a}
{assign $a-=4} --2--:
{$a}
作用域保护:
{for $i=0; $i<=3; $i++}
{assign $str=`key:{$i}`}
<div>这里会输出:{$str}</div>
{/for}
<div>因为是局部变量,这里不会输出:{$str|default:''}</div>
运行结果:
<div>这里会输出:key:0</div>
<div>这里会输出:key:1</div>
<div>这里会输出:key:2</div>
<div>这里会输出:key:3</div>
<div>因为是局部变量,这里不会输出:</div>