1.is_null()与isset()
在大多数情况下是完全相反的判断,即只要被isset()判断为TRUE,is_null()必然为FALSE,但以下一点需要注意:
当一个变量$var在用is_null判断之前从未出现过即未曾声明过(通常php不必显式声明变量,对变量赋值意味着同时对变量声明,但这并不意味着单独显式声明变量的语句"$var;"有任何语法上的错误,但会被认为是多此一举),这时,is_null($var)会抛出一个NOTICE异常,然后再返回TRUE,而isset($var)则不会有异常提醒。
2.empty()与is_null()
(1)is_null()为TRUE的时候,empty()也为TRUE.但若$var从来未被声明过时,is_null()会有异常提醒,而empty()不会;
(2)empty()为TRUE时,is_null()不一定为TRUE,因为empty()=true的情况包含以下几种:
- "" (空字符串)
- 0 (作为整数的0)
- 0.0 (作为浮点数的0)
- "0" (作为字符串的0)
NULL
FALSE
- array() (一个空数组)
- $var; (一个声明了,但是没有值的变量)