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
PHP与JavaScript的“小”不同 强制转换变量类型函数