【php】如何区分变量为空、null、未定义,以及0和0.0的区别?和函数empty(),is_null(),isset()的使用范围

目录

区分变量值是否为空

区分变量是否为null

区分变量是否定义

当变量为空的情况下如何区分0和0.0以及其他为空的值?


如下图,变量为空包括值为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 "不相等(用===判断)";
}

效果:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值