我们可以对模板输出使用运算符,包括对“+”“-” “*” “/”和“%”的支持。 例如:
| 运算符 | 使用示例 |
|---|---|
| + | {$a+$b} |
| - | {$a-$b} |
| * | {$a*$b} |
| / | {$a/$b} |
| % | {$a%$b} |
| ++ | {$a++} 或 {++$a} |
| -- | {$a--} 或 {--$a} |
| 综合判断 | {$a+$b*10+$c} |
在使用运算符的时候,不再支持常规函数用法,例如:
{$user.score+10} //正确的
{$user['score']+10} //正确的
{$user['score']*$user['level']} //正确的
{$user['score']|myFun*10} //错误的
{$user['score']+myFun($user['level'])} //正确的三元运算:
模板可以支持三元运算符,例如:
{$status? '正常' : '错误'}
{$info['status']? $info['msg'] : $info['error']}
{$info.status? $info.msg : $info.error }5.0版本还支持如下的写法:
{$varname.aa ?? 'xxx'}表示如果有设置$varname则输出$varname,否则输出'xxx'。 解析后的代码为:
<?php echo isset($varname['aa']) ? $varname['aa'] : '默认值'; ?>
{$varname?='xxx'}表示$varname为真时才输出xxx。 解析后的代码为:
<?php if(!empty($name)) echo 'xxx'; ?>
{$varname ?: 'no'}表示如果$varname为真则输出$varname,否则输出no。解析后的代码为:
<?php echo $varname ? $varname : 'no'; ?>
{$a==$b ? 'yes' : 'no'}前面的表达式为真输出yes,否则输出no, 条件可以是==、===、!=、!==、>=、<=
