今天项目中遇到的一个问题,举个栗子:

if($_GET['is_has_idcard']==0 || $_GET['is_has_idcard']==1){

  echo '这次我要上传身份证';

}

if($_GET['marry_mes']!=''){

  echo '这次我要上传婚姻信息';

}

这样的判断,当没有传值is_has_idcard的时候,也会echo 这次我要上传身份证。就这个判断写法在我们的流程中成了个bug ,百度学一下,基础还是得打啊。。。

===========================================================================================================
下列哪一个是假:
A、0=="0";
B ""== "0"
C “”==0
D false=="0"
请解释下PHP在这些情况下以哪种类型比较的标准是什么?

答案:

A,真
B,假
C,真
D,真
PHP是一种弱类型语言,字符串,数,布尔,有时它自作聪明地帮你转化,这种转化有时带来方便,有时带来恼火.A:字符数字与数可以互相转化,这个大家都知道,B:空字符串与0字符串当然不一样.C:空就是0,D:0字符可以认为是假的.
如上就产生了一个问题:因为""==0, 0=="0" ,所以,""=="0",就是B了,而B是假的,MD,纠结了.
这里因为PHP只作了两两转换,所以上面推理虽然是那么纠结.但事实上“”不能直接转化为“0”的.
对于D这条,你说得有道理,我也觉得0也是有字符啊, 但是“0”可转化为0,0是假呀.感觉没道理可说,所谓道理就是人家规定的.实际写时多测试吧.

==============================================================================================================

php " ",0,'0',false ==判断的更多相关文章

  1. 区分JS中的undefined,null,"",0和false

    在程序语言中定义的各种各样的数据类型中,我们都会为其定义一个"空值"或"假值",比如对象类型的空值null,.NET Framework中数据库 字段的空值DB ...

  2. javascript中的undefined,null,"",0和false的云集

    在各种各样的数据类型中,我们都会为其定义一个"空值"或"假值",比如对象类型的空值null,.NET Framework中数据库字段的空值DBNull,bool ...

  3. python中的0,None,False,空容器

    在Python中,None.空列表[].空字典{}.空元组().0等一系列代表空和无的对象会被转换成False.除此之外的其它对象都会被转化成True. 1.0等于False,这点要注意. 2.空的l ...

  4. 区分js中的null,undefined,"",0和false

    console.log(typeof null);//object console.log(typeof undefined);//undefined console.log(typeof " ...

  5. php如何判断 0.0/0.00/0.000 是否为空? 测试过用empty函数不行

    if ( (int) $number == 0) echo 'empty'; if ( floatval($number) == 0 ) echo 'empty' 首先,PHP 认为 0.0 是空,同 ...

  6. js中的0就是false,非0就是true及案例

    在处理js代码判断真假时经常会这么写. 但fun()可能得到的是数字0,这可不是表示的没有值,但是!js中的数字0就是false,非0就是true. 于是0就被无情的当做false了. 已经被这个坑过 ...

  7. JAVAWEB 遍历mysql结果集时 字段为0、false、null的问题

    foreach遍历查询mysql中的tinyint字段时一直查都是各种0,false,null 发现原来是实体类中的变量名和mysql中的列名不一样出的bug 所以说列名和实体类中的相关变量名是要保持 ...

  8. Eleastisearch6.0.0 read_only_allow_delete: false

    Eleastisearch6.0.0由单节点升级到多节点集群cluster时候出现的分片同步错误问题解决 原创 2018年01月18日 16:33:21 5 启动多个节点的ES后,ES开始推举mast ...

  9. JS中的undefined,null,"",0,'0'和false

    ){ console.log(); } '){ console.log() } '){ console.log() } if(false==0.0){ console.log() } if(false ...

随机推荐

  1. 快速上手小程序的mpvue框架

    一.什么是mpvue框架? mpvue 是一个使用 Vue.js 开发小程序的前端框架.框架基于 Vue.js 核心(所以建议熟练掌握vue再使用mpvue框架,否则还是建议去使用原生框架去写小程序) ...

  2. java lesson13Homework

    /** * 1. 字符串解析,现有字符串,“卡巴斯基#杀毒软件#免费版#俄罗斯#”,解析出每个元素. */ package String13Practice; public class String0 ...

  3. java lesson20homework

    package com.xt.lesson20; /** * 简易自动提款机 1. 创建用户类User(包含卡号.姓名.密码.余额等属性),用户开卡时录入的姓名和密码(自动分配一个卡号.初始金额设置为 ...

  4. BZOJ2659算不出的算式不正经题解

    题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=2659 分析 难得做到此类打表题目,不觉回想到NOIp2017考场上的SB经历 这道题看到 ...

  5. warning LNK4076: 无效的增量状态文件“../×××.ilk”;正在非增量链接

      VS编译警告:warning LNK4076: 无效的增量状态文件“../×××.ilk”;正在非增量链接 解决方法:删除程序提示的输出目录的×××.ilk,重新编译,即可

  6. LeetCode:176.第二高的薪水

    题目链接:https://leetcode-cn.com/problems/second-highest-salary/ 题目 编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Sal ...

  7. 【ExtJs】获取grid选中的records

    var records = me.grid.getSelectionModel().getSelection(); //获取所有选中的行 var record =records[0]; //获取选中行 ...

  8. Linux之用户相关操作

    1. 创建用户 useradd -m wolf #即创建一个用户并且创建同名的家目录 2. 设置密码 passwd wolf

  9. mybatis sql语句中 in() 长度为0或null的情况

    mybatis sql语句中 in() 长度为0或null的情况 比如: select * from A where colName IN <foreach collection="m ...

  10. 链接进入react二级路由,引发的子组件二次挂载

    这个问题很怪,我两个二级路由从链接进入的时候,会挂载两次子组件. 从链接进入,是因为新页面在新标签页打开的. 有子组件是因为公共组件提取 同样的操作,有一些简单的二级路由页面,就不会挂载两次. 讲道理 ...