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 官方手册说明是比较值与数据类型。