zoukankan      html  css  js  c++  java
  • php " ",0,'0',false ==判断

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

    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是假呀.感觉没道理可说,所谓道理就是人家规定的.实际写时多测试吧.

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

  • 相关阅读:
    手写PE文件(不借助编译器,用十六进制数进行编写)
    浅谈代码段加密原理(防止静态分析)
    PE文件动态加载执行过程
    静态数据连接库(.lib)和动态连接库(.dll)
    关于普通断点/内存断点/硬件断点
    x64dbg零基础使用教程
    HOOK相关原理与例子
    socket,实现服务器和客户端对话
    解析PE文件
    python正则表达式---基于re模块
  • 原文地址:https://www.cnblogs.com/gyrgyr/p/11571904.html
Copyright © 2011-2022 走看看