empty、isset和is_null的比较

  empty,isset首先都会检查变量是否存在,然后对变量值进行检测。而is_null 只是直接检查变量值,是否为null,因此如果变量未定义就会出现错误!

empty

  如果 变量 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""、0、"0"、NULLFALSE、array()、var $var、未定义; 以及没有任何属性的对象都将被认为是空的。isset

  如果 变量 存在(非NULL)则返回 TRUE,否则返回 FALSE(包括未定义)。变量值设置为:null,返回也是false;unset一个变量后,变量被取消了。

is_null

  检测传入值【值,变量,表达式是否是null,只有一个变量定义了,且它的值是null,它才返回TRUE . 其它都返回 FALSE 【未定义变量传入后会出错!】.

 

例1:

<?php
$arr1 = array();
$arr2 = array(array());
var_dump(empty($arr1));
var_dump(empty($arr2));
?>

  结果是:bool(true) bool(false);因为$arr2里面还有一个空数组,所以$arr2不为空。

 

posted @ 2013-03-18 15:34  洒洒  阅读(207)  评论(0编辑  收藏  举报