PHP 中 emtpy、isset、is_null的区别

PHP264 字

PHP 提供了3个用于测试变量值的函数,分别是isset()、empty()、is_null(从这里就可以看出PHP系统函数变量名命名的混乱,这也是一直被人诟病的地方)。这几个函数均返回布尔值,有时使用不当会造成意想不到的结果。

比如,用isset()和empty()返回的结果是相反的,但却并非一直如此。

isset()用来检测一个变量是否已声明且值不为null。只能在变量不是null时返回真。

empty()用来检测一个变量是否为空,也就是说有如下情况时返回真值:变量是一个空字符串,false,空数组,null,'',以及被unset删除后的变量。

在PHP5.5之后,empty()函数可以接受任意类型的表达式

is_null()函数用来判断变量内容是否是null,即返回真值的条件仅为变量值是null,值得一提的是,is_null() 是 isset() 的反函数,区别是isset()函数可以应用到未知变量,但is_null()只能针对以声明的变量。

对比项
变量值($var)isset($var)empty($var)is_null($var)
""(空字符串)bool(true)bool(true)bool(false)
" "(空格)bool(true)bool(false)bool(false)
FALSEbool(true)bool(true)bool(false)
TRUEbool(true)bool(false)bool(false)
array()bool(true)bool(true)bool(true)
NULL bool(true)bool(true)
maksim
Maksim(一笑,吡罗),PHPer,Goper
OωO
开启隐私评论,您的评论仅作者和评论双方可见