我们可以对模板输出使用运算符,包括如下支持。

运算符 使用示例
+ {$a+$b}
- {$a-$b}
* {$a*$b}
/ {$a/$b}
% {$a%$b}
++ {$a++}{++$a}
-- {$a--}{--$a}
综合运算 {$a+$b*10+$c}

在使用运算符的时候,不再支持前面提到的函数过滤用法,例如:

  1. {$user.score+10} //正确的
  2. {$user["score"]+10} //正确的
  3. {$user["score"]*$user["level"]} //正确的
  4. {$user["score"]|myFun*10} //错误的
  5. {$user["score"]+myFun($user["level"])} //正确的

三元运算

模板可以支持三元运算符,例如:

  1. {$status? "正常" : "错误"}
  2. {$info["status"]? $info["msg"] : $info["error"]}
  3. {$info.status? $info.msg : $info.error }

还支持如下的写法:

  1. {$name ?? "默认值"}

表示如果有设置$name则输出$name,否则输出默认值

  1. {$name?="默认值"}

表示$name为真时才输出默认值。

  1. {$name ?: "NO"}

表示如果$name为真则输出$name,否则输出NO。

  1. {$a==$b ? "yes" : "no"}

前面的表达式为真输出yes,否则输出no, 条件可以是==、===、!=、!==、>=、<=