1. 模板 > 內置標簽 > 比較標簽
控制器:
$_data['list'] = [ 'dingo' , 'engo' , 'fengo' , 'gingo' , 'autoFill'=>'jingo'] ;
$this->assign($_data);
視圖模板:
{{foreach item="item" name="list" key="k"}}
{{if condition = "$k neq 'autoFill'"}}
{{$item}}
{{/if}}
{{/foreach}}
輸出結果: engo , fengo , gingo
缺少了 dingo 。
查看緩存中生成的 PHP 代碼,發現使用 "neq" 對應的是 " != " ;
使用 "nheq" 對應的是 " !== " 。
最終,我自己寫了一段 PHP 原生代碼來進行測試,代碼如下:
<?php
$arr = ['dindo' , 'kingo' , 'gingo' , 'qingo' , 'autoFill'=>'winwo'];
foreach($arr as $key => $val) {
if($key !== 'autoFill') { // !=
echo $key.'-<h3>'.$val.'-</h3>';
}
}
// 輸出結果:dingo , kingo , gingo , qingo
echo '<hr />';
foreach($arr as $key => $val) {
if($key != 'autoFill') { // !=
echo $key.'-<h3>'.$val.'-</h3>';
}
}
// 輸出結果:kingo , gingo , qingo
?>
總結:原因可能是出於 PHP 的( != )比較運算符有問題,在比較 0 與字符串時,會出現問題。建議盡量使用 " !== "。
!= , PHP 官方手冊說明是比較值,不比較數據類型。
!== ,
PHP 官方手冊說明是比較值與數據類型。