PHP中defined empty is_null isset区别联系
defined() 这个好区别,这个是检查常量是否定义了! 下面这三个empty() is_null() isset() 用于变量,但是稍不留意会导致流程判断错误,产生奇怪的bug 查看了某些人写的区别文章不够直观! 下面是一个对照表(当变量定义了),相信看着对照表加上一点注释,就不会弄混了!
defined()这个好区别,这个是检查常量是否定义了!
下面这三个empty() is_null() isset() 用于变量,但是稍不留意会导致流程判断错误,产生奇怪的bug
查看了某些人写的区别文章不够直观!
下面是一个对照表(当变量定义了),相信看着对照表加上一点注释,就不会弄混了!
a、empty()从图中可以看出 如果变量为""、0、"0"、NULL、FALSE、array()、var $var 则变量为空 即返回TRUE ,另外变量未定义也是空;
b、is_null() 从图中可以看出,只有变量设置为null或者变量定义了但未赋值 则 is_null返回TRUE;
c、isset() 从图中可以看出,只要变量设置了值(NULL除外)都返回TRUE;
关于变量是否定义了,如果定义了,其值是否为NULL的判断!网上有人给的答案:
<?php function checkNull($a) { if(array_key_exists($a,$GLOBALS)) { global $$a; if(is_null($$a)) return true; } return false; } $test=null; var_dump(checkNull("test")); var_dump(checkNull("test1")); ?>
测试放回结果如下:
boolean true
boolean false
评论