目录
如下图,变量为空包括值为null和未定义的情况
区分变量值是否为空
可以用函数empty()来判断变量是否为空,为空返回true,反之返回false
案例演示:(下面演示8种变量为空的情况)
$var1=""; //空字符串
$var2=0; //整数0
$var3=0.0; //浮点数零
$var4="0"; //字符串0
$var5=false; //值为false
$var6=array();//值为空数组
$var7=null; //值为null
$var8; //未定义的变量
echo var_dump(empty($var1));//var_dump()是调试函数,用于返回其中值的类型信息
echo var_dump(empty($var2));
echo var_dump(empty($var3));
echo var_dump(empty($var4));
echo var_dump(empty($var5));
echo var_dump(empty($var6));
echo var_dump(empty($var7));
echo var_dump(empty($var8));//未定义的变量
结果:
区分变量是否为null
用is_null()函数来判断变量是否为null,为null返回true,反之返回false
案例:(下面展示了两个变量为null的和一个不为null的情况)
$var1=null;//值为null
$var2; //未定义的变量
$var3=""; //为空但并不代表为null
echo var_dump(is_null($var1));
echo var_dump(is_null($var2));//对未定义的变量应用is_null时,php会将该变量的值视为null
echo var_dump(is_null($var3));
结果:
区分变量是否定义
用isset()函数来判断变量是否定义,未定义返回false,反之返回true
注:(其实从结果上来看使用isset()函数与is_null()函数的结果是相反的)
案例:
$var1=null;//值为null
$var2; //未定义的变量
$var3="";
echo var_dump(isset($var1));
echo var_dump(isset($var2));
echo var_dump(isset($var3));
效果:
当变量为空的情况下如何区分0和0.0以及其他为空的值?
区分方法:使用比较操作符'==='进行判断
案例:
$var1=0;
$var2=0.0;
if($var1===$var2){
echo "相等";
}else{
echo "不相等";
}
效果:
同理用'==='还可以判断空值 "" , "0" , false以及空数组之间的的相等性。
补充:关于比较操作符'=='和'==='的区别
使用符号'=='对变量进行比较时,不会考虑变量的类型,如果两个值在进行类型转换后可以可以相等,那么用'=='比较后返回true,否则返回false
但用符号'==='对变量进行比较时,不但变量的值要相等,其类型也要相等才可以返回true
案例:
$var1=0;//整型空值
$var2=0.0;//浮点型空值
if($var1==$var2){
echo "相等(用==判断)";
}else{
echo "不相等(用==判断)";
}
echo "<br>";//换行
if($var1===$var2){
echo "相等(用===判断)";
}else{
echo "不相等(用===判断)";
}
效果: