PHP中defined empty is_null isset区别联系

07/03 PHP总结 阅读 771 views 次 人气 0
摘要:

defined() 这个好区别,这个是检查常量是否定义了! 下面这三个empty() is_null() isset() 用于变量,但是稍不留意会导致流程判断错误,产生奇怪的bug 查看了某些人写的区别文章不够直观! 下面是一个对照表(当变量定义了),相信看着对照表加上一点注释,就不会弄混了!

defined()这个好区别,这个是检查常量是否定义了!

下面这三个empty() is_null() isset()   用于变量,但是稍不留意会导致流程判断错误,产生奇怪的bug

查看了某些人写的区别文章不够直观!

下面是一个对照表(当变量定义了),相信看着对照表加上一点注释,就不会弄混了!

php.jpg

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


评论

该文章不支持评论!

分享到: