26
2019.2
三元变量赋值
作者: POPASP
三元变量赋值
通用格式:`{:$varName= contion ? true_value : false_value}`
特殊格式1:`{:$varName= contion ?: true_value :: false_value}`
特殊格式2:`{:$varName= contion ?: true_value : false_value}`
特殊格式3:`{:$varName= contion ? true_value :: false_value}`
特殊格式4:`{:$varName=: contion ? true_value : false_value}`
其他特殊格式……
### 通用格式
三元变量赋值,是变量赋值的特殊形式。它相当于if条件:
```brush:vb
if contion then
POP_MVC.tpl_vars("varName") = true_value
'或者set POP_MVC.tpl_vars("varName") = true_value
else
POP_MVC.tpl_vars("varName") = false_value
'或者set POP_MVC.tpl_vars("varName") = false_value
end if
````
举例:
```brush:html
{:$ret= 2>1 ? "正确" : "错误"}
{$ret} '输出"正确"
```
```brush:html
{:$row = B_("content").find} {//从文章数据表中取出一条记录,isTop为数字,标识文章是否为置顶文章}
{:$top_label="置顶"}
{:$normal_label="一般文章"}
{:$isTop = $row.isTop ? $top_label : $normal_label }
{$isTop} {//输出:一般文章,因为表里的isTop值为0}
```
{//...}为模板引擎中的单行注释,要认真看明白每行代码的注释。在上例中,$row.isTop、$top_label、$normal_label都进行了必要且正确的替换。有时候我们不希望进行替换时,可以采用特殊格式。
### 特殊格式1
举例:
```brush:html
{:$row2 = B_("content").find}
[:$isTop2 = $row2.isTop ?:"置顶文章"::"一般" & "文章"] {//如果前面的分隔符后面加了冒号,表示不进行$变量解析,但是还会像asp那样进行正常的表达式运算。}
{//得到“一般文章”}
```
其他特殊格式可以类比特殊格式1,不再举例。