• [ThinkPHP] 比较标签 neq&nheq 与 PHP 中的 != 与 !== 出现的问题


    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 官方手册说明是比较值与数据类型。
  • 相关阅读:
    Code Reading chap2
    Code Reading chap4
    Code Reading chap6
    常用的一些sql基础语句汇总
    20170322、Linux常用命令汇总
    在windows上部署使用Redis
    20170322、php基础语法
    20170822、在Linux上部署使用Redis
    Linux安装配置SVN服务器
    Linux安装配置MySQL
  • 原文地址:https://www.cnblogs.com/shuman/p/4228711.html
Copyright © 2020-2023  润新知