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

[ThinkPHP] 比较标签 neq&nheq 与 PHP 中的 != 与 !== 出现的问题的更多相关文章

  1. thinkphp <volist>标签中 <if> 判断的写法

    thinkphp <volist>标签中 <if> 判断的写法 <volist name="data" id="vo"> & ...

  2. thinkphp if标签

    1.thinkphp框架中的if标签,用于html页面中.在html中编写php代码 1).从控制器中得到数据在循环中if else 判断:<volist name="system_r ...

  3. thinkphp在前端页面的js代码中可以使用 U方法吗? 可以使用模板变量如__URL__等吗?

    thinkphp在前端页面的js代码中可以使用 U方法吗? : 可以的! tp的U方法, 是"全局的", 什么是全局的? 就是, 可以在 "任何地方"使用的: ...

  4. dedecms5.7文章页的标签随机插入到内容中并且标签的地址为其标签关联的其他文章地址

    dedecms5.7文章页的标签随机插入到内容中并且标签的地址为其他标签关联的文章地址 1 添加2个自定义函数 在dede/include/extend.func.php底部 添加如下代码 //根据文 ...

  5. template标签就相当于React中的fragment

    template标签就相当于React中的fragment

  6. thinkphp ASSIGN标签

    ASSIGN标签用于在模板文件中赋值变量,用法如下: 直线电机厂家 <assign name="var" value="123" /> 在运行模板的 ...

  7. thinkphp volist标签中加if判断的写法

    <if condition="$vo['devstatus'] eq 1">在线<else /> 离线</if> IF标签用法 <if c ...

  8. thinkphp 比较标签

    比较标签用于简单的变量比较,复杂的判断条件可以用if标签替换,比较标签是一组标签的集合,基本上用法都一致,如下: <比较标签 name="变量" value="值& ...

  9. thinkphp自定义标签库

    thinkphp ~ php中 的类, 的成员变量, 本身是没有类型说明的, 那么我怎么知道它的类型呢? 或初始值呢? 通常在类定义中, 如果能给一个初始值的(对于已知简单类型的),最好给一个初始值, ...

随机推荐

  1. Tomcat服务器端口的配置

    一.Tomcat服务器端口的配置 Tomcat的所有配置都放在conf文件夹之中,里面的server.xml文件是配置的核心文件. 如果想修改Tomcat服务器的启动端口,则可以在server.xml ...

  2. iSCSI 协议

    iSCSI 协议 iSCSI协议结构 如同任何一个协议一样,iSCSI也有一个清晰的层次结构,根据OSI模型,iSCSI的协议栈自顶向下一共可以分为五层,如图所示: SCSI层:根据应用发出的请求建立 ...

  3. python-web 创建一个输入链接生成的网站

    第一步:写一个自定义程序 #coding=utf-8 import os #Python的标准库中的os模块包含普遍的操作系统功能import re #引入正则表达式对象import urllib # ...

  4. java之序列化与反序列化

    1.这里主要是介绍Protobuf提供的序列化与反序列化的高效性.相对于传统的java提供的序列化来说,Protobuf的效率提高了很多倍.但是也有不足的地方,就是proto在对象序列化的时候抛弃了很 ...

  5. display:table; 也可以实现 div 始终和内包的图片大小相同

    display:table; 也可以实现 div 始终和内包的图片大小相同

  6. 常见的JS和CSS问题

    事件冒泡 DOM的事件冒泡机制和WPF很相似,DOM事件机制包含冒泡和捕获两种,按照topmost element->innermost element方向传递事件被称为捕获方式,而从inner ...

  7. Android开发入门——Button绑定监听事件三种方式

    import android.app.Activity; import android.os.Bundle;import android.view.View;import android.widget ...

  8. java JDBC数据库连接操作

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public clas ...

  9. Defer 声明的设计理念

    [Defer 声明的设计理念] A defer statement pushes a function call onto a list. The list of saved calls is exe ...

  10. 南京大学发布无序列限制的DNA编辑新工具(转自生物通)

    编辑推荐: 内切酶经过改造可以成为强大的DNA编辑工具,比如ZFN.TALEN.风头正劲的CRISPR–Cas系统和充满争议的NgAgo技术.不过这些技术都是通过序列识别来实现靶向切割的,会受到序列偏 ...