<foreach name="haha" item="pp">
<if condition="({$pp.id}==1) && ({$pp.pos}==1) && ({$pp.poss}==1)">
<img src="{$pp.path}{$pp.name}">
</if>
</foreach>
循環輸出了所有圖片,if 條件未生效;若嘗試修正語法反而報錯。
ThinkPHP 模板引擎條件判斷不支持 ==、&& 等 PHP/JS 風格運算符,需使用模板專用標識符。
| PHP/JS 風格 (錯誤) | ThinkPHP 模板標識符 (正確) |
|---|---|
== | eq 或 equal |
!= | neq 或 notequal |
> | gt |
< | lt |
>= | egt |
<= | elt |
&& (AND) | and |
|| (OR) | or |
<foreach name="haha" item="pp">
<if condition="$pp.id eq 1 and $pp.pos eq 1 and $pp.poss eq 1">
<img src="{$pp.path}{$pp.name}">
</if>
</foreach>
{$var} 包裹,直接寫 $pp.id。$pp.name eq 'abc'。($a eq 1 and $b eq 2) or $c eq 3。{$pp.id}|{$pp.pos}|{$pp.poss}。$pp.id eq 1,生效後再加條件。Runtime/Cache/...),分析模板引擎生成的原生 PHP 代碼。ThinkPHP 模板 if condition 必須使用模板專用標識符(eq、and 等),不能使用 ==、&& 等編程語言運算符。修正語法後邏輯即可正常生效。