PHP函数is_null,empty(),isset()的区别
empty()是检测变量是否为空值,
而is_null是检测变量是否存在,
is_null()仅能检查值为null或没有.
所以检测某个变量的值是否为空必须用empty.
isset()是null的取反操作
变量是否存在,并且值不为null,返回ture,否则返回false
<?php echo '<h2>3.is_null,empty(),isset()区别</h2>'; //这三个函数仅仅适用于变量的判断。 echo '<hr>'; /* 1.is_null()什么时候返回true a.变量已声明但未初始化,默认为null值 b.变量显示赋值为null c.unset()销毁后,变量为null值 总结:变量不存在/没有赋值/值为null,则返回true */ $val1; //已经声明未赋值 $val2=null; //赋值为null 初始变量 $val3='php 课程1'; echo $val3; echo '<hr>'; unset($val3);//销毁变量 //echo $val3;//再次查询原始变量,则检测不存在 var_dump(is_null($val1) ? true : false); //true echo '<hr>'; var_dump(is_null($val2) ? true : false); //true echo '<hr>'; var_dump(is_null($val3) ? true : false); //true echo '<hr>'; /* 2.empty(var)什么时候返回true a.空字符串,空数组 b.null c. 0 ; '0' ; false 总结: 1. 如果一个变量不存在,它即是空,也是null,用is_null() / empty()都可以判断 2. 如果一个变量存在,但它的值对运行结果无影响,则视为空 3. null一定是空,但空不一定是null,因为它可能是空值或0或 */ $str1 = ''; $str2 = []; $str3 = '0'; $str4 = 0; $str5 = null; $str6 = false; $str7 = 'php 课程 2'; var_dump(empty($str1) ? true : false);//空字符串 var_dump(empty($str2) ? true : false);//空数组 var_dump(empty($str3) ? true : false);//字符类型数组0 var_dump(empty($str4) ? true : false);//数字0 var_dump(empty($str5) ? true : false);//null值 var_dump(empty($str6) ? true : false);//布尔类型false var_dump(empty($str7) ? true : false);//有值又不为空 ,此处返回false /* 综上所述,总结如下: empty()是检测变量是否为空值, 而is_null是检测变量是否存在, is_null()仅能检查值为null或没有. 所以检测某个变量的值是否为空必须用empty. */ //-------------------------------------- // // //isset()是null的取反操作 //变量是否存在,并且值不为null,返回ture,否则返回false $domain='http://www.php.cn'; $name=null; $sex; echo '<hr>'; var_dump(isset($var)); var_dump(isset($domain) ? true : false); var_dump(isset($name) ? true : false); var_dump(isset($sex) ? true : false); //false,未赋值并不报错,与is_null不同 echo '<hr color="red">'; //第一种场景: 变量未声明 var_dump(isset($a) ? true : false);//不报错,返回false表示未声明 $name = isset($_GET['page']) ? $_GET['page'] : 1; echo $name; var_dump(is_null($a) ? true : false);//is_null会给出警告,并自动执行 $a = null, 所以会返回tru //因为未声明的变量会自动初始化为null,而对于值为null的变量,empty()会认为是空,所以返回true var_dump(empty($a) ? true : false); //第二种场景: 变量未声明 // $a='xumq.cn'; $b=''; $c=null; echo '<hr color="red">'; var_dump(isset($a));//有无判断 var_dump(empty($b));//非空判断 var_dump(is_null($c));//null