我们可以对模板输出使用运算符,包括如下支持。
| 运算符 | 使用示例 |
|-----|-----|
| `+` | `{$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 }
~~~
还支持如下的写法:
~~~
{$name ?? '默认值'}
~~~
表示如果有设置`$name`则输出`$name`,否则输出`默认值`。
~~~
{$name?='默认值'}
~~~
表示$name为真时才输出默认值。
~~~
{$name ?: 'NO'}
~~~
表示如果$name为真则输出$name,否则输出NO。
~~~
{$a==$b ? 'yes' : 'no'}
~~~
前面的表达式为真输出yes,否则输出no, 条件可以是==、===、!=、!==、>=、<=