我們可以對模板輸出使用運算符,包括如下支持。
| 運算符 | 使用示例 |
|-----|-----|
| `+` | `{$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, 條件可以是==、===、!=、!==、>=、<=