购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.2 emtpy、isset、is_null的区别

变量在所有计算机语言中均有提供,它用来保存数值、文本、对象等内容。我们可以把变量看作一个有名称的桶,里面放着一个值,这个值可以是数字、字符串或对象,以及包含你想到的任何合法的内容。

PHP提供了3个用于测试变量值的函数,分别是:isset()、empty()和is_null()。这几个函数均返回布尔值,有时使用不当会造成意想不到的结果,需要详细说明。

比如,用isset()和empty()返回的结果是相反的,但有时却并非一直如此,下面我们一起来了解这几个函数的具体区别。

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

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

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

正确地检查一个变量是否为空,可使用如下格式:


ifempty$approve)){
    //etc
}

这种形式可适用在PHP的任意版本中。如果你用的是PHP5.5以上版本,可以使用如下格式:


ifempty0)){
    //etc
}
ifemptyCreateNew())){
         //etc
}

以上格式在PHP5.5以上版本中均可以使用,如果小于该版本会返回解析错误。

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

我们用一张表格来汇总这些函数返回值的不同之处(表1-1),表中空白表示函数返回布尔值假(false)。

表1-1 测试函数返回值的区别 NXC6pnhqBXK5IbtmrTfTdn6OEib9IfcGOc0Jr+8VzAY0uLxeIPGF39Sk2dtjkli0

点击中间区域
呼出菜单
上一章
目录
下一章
×