php项目中这三个函数经常用到且容易混淆,这里总结区别记一下
当变量 $a=null
<?php
$a = null;
echo is_null($a);//1
echo '<br/>';
echo isset($a);//
echo '<br/>';
echo empty($a);//1
?>
is_null($a) true
isset($a) false
empty($a) true
当变量 $a=''(空字符串)
<?php
$a = '';
echo is_null($a);//
echo '<br/>';
echo isset($a);//1
echo '<br/>';
echo empty($a);//1
?>
is_null($a) false
isset($a) true
empty($a) true
当变量 $a=' '(中间有个空格)
<?php
$a = ' ';
echo is_null($a);//
echo '<br/>';
echo isset($a);//1
echo '<br/>';
echo empty($a);//
?>
is_null($a) false
isset($a) true
empty($a) false
当变量 $a=array()(空数组)
<?php
$a = array();
echo is_null($a);//
echo '<br/>';
echo isset($a);//1
echo '<br/>';
echo empty($a);//1
?>
is_null($a) false
isset($a) true
empty($a) true
总结:
1、is_null 只对null为true,其他的为false,php中null是一个既没类型有没有值的变量。
2、isset 只对null为false,其他的为true, 因为 '' , ' ' ,array(),这三种变量是有明确的数据类型的,''代表空的字符串,' '代表空格字符串,array()代表空的数组。因此一个变量只要有类型isset就为 true。
3、empty 只对非空的数组和字符串为false。