Thinkphp框架中IF標籤的易犯錯誤彙總
阿新 • • 發佈:2019-02-06
今天用到了Thinkphp框架中IF標籤,一直報錯,在排錯過程中很是糾結,特此總結一下。
官方文件:模板->內建標籤->IF標籤舉例如下:
用法示例:
<ifcondition="($name eq 1) OR ($name gt 100) "> value1
<elseifcondition="$name eq 2"/>value2
<else/> value3
</if>
在condition屬性中可以支援eq等判斷表示式,同上面的比較標籤,但是不支援帶有”>”、”<”等符號的用法,因為會混淆模板解析,所以下面的用法是錯誤的:
<if condition="$id < 5 ">value1
<else/> value2
</if>
必須改成:
<ifcondition="$id lt 5 ">value1
<else/> value2
</if>
除此之外,我們可以在condition屬性裡面使用php程式碼,例如:
<ifcondition="strtoupper($user['name']) neq 'THINKPHP'">ThinkPHP
<else/> other Framework
</if>
condition屬性可以支援點語法和物件語法,例如:自動判斷user變數是陣列還是物件
<ifcondition="$user.name neq 'ThinkPHP'">ThinkPHP
<else/> other Framework
</if>
或者知道user變數是物件
<ifcondition="$user:name neq 'ThinkPHP'">ThinkPHP
<else/> other Framework
</if>
1、使用IF標籤時必須注意變數的寫法,此處變數一定不能用{}括起來,千萬不要受官方文件前面的變數引用部分誤導,否則結果就是報錯報錯。
2、使用時注意<else/>必須自己閉合。
3、符號的應用,什麼可用什麼不可用,==號和eq都是可以用的。
4、condition=後面必須用“”把條件包含其中,但是()不是必須的。
犯錯及糾錯例項待補充。