美文网首页
看懂 PHP 的空值检查

看懂 PHP 的空值检查

作者: 字母数字或汉字 | 来源:发表于2016-05-29 00:08 被阅读22次

    让我们先有一些基础知识:

    • isset($x) 语言结构。检查变量是否赋值
    • empty($x) 函数。检查值是否为空
    • is_null($x) 函数。检查值是否为null
    • == 运算符。判断值是否相等
    • === 运算符。判断值和类型是否相等

    只有 isset() 是必须传入变量的,其他均可传入变量、常量或字面量。

    让我们先看一张取值表:

    常用判空表达式参照表.png

    得到以下结论:

    • unsetnull 看起来是等价的,其他任何值都是 set 的。
    • empty($x) 等价于 $x == null
    • is_null($x) 等价于 $x === null
    • false0""[] 在布尔运算时都被看做 false
    • \0 在布尔运算时竟然被看做 true

    那 is_null() 与 === null 有什么区别呢?

    1. 后者更快。运算符操作比函数操作开销小,虽然在PHP源码中它们做的事情是类似的。
    2. 事实上前者判断的是:值是否属于 null 类型;后者判断的是:值是否等于 null 且属于 null 类型。当然我们不能忽略一个事实,null 类型只有 null 值。

    相关文章

      网友评论

          本文标题:看懂 PHP 的空值检查

          本文链接:https://www.haomeiwen.com/subject/lkfqdttx.html