诺亚方舟

沉淀

isset、empty傻傻分不清楚

最近在写脚本的时候,注意到了isset()、empty()这两个函数,我们常常可以用他们来判断某个变量是否存在。下面讲讲自己对这两个函数的理解。

isset(),检测某个变量是否存在,存在返回true,不存在则返回false。这里值得注意的是在PHP中,如果声明了一个变量,但没有对其赋值,则会默认为NULL值,故NULL值的变量在isset()函数中便会返回false。

1
2
3
4
5
$test1 = NULL; 
$test2; 
var_dump(isset($test1)); 
var_dump(isset($test2)); 
var_dump(isset($test3));//$test3是没经过声明直接输出来的

输出的结果都是bool(false)。即是说isset()实际上是用来判断某个变量是否为null值。

empty()。用来判断某个变量是否为0、”0″、null、false、”"、array()等值,若是,返回true,否则返回false。

好了,下次你遇到要用empty还是isset的时候清楚了吗?。。。

文章还没结束,这里还要补充说一点,关于$_POST、$_GET变量的事,这两预定义变量服务器都会默认设为array(),故对其进行isset()(无论页面是否有传值)都会返回true。如下:

1
2
3
4
var_dump(isset($_POST)); 
var_dump(isset($_GET));  
var_dump(empty($_POST));  
var_dump(empty($_GET));

将返回

boolean true
boolean true
boolean true
boolean true

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>