首页 > 编程 > PHP > 正文

php中0,空,null和false之间有何区别(代码示例)

2020-03-22 16:39:48
字体:
来源:转载
供稿:网友
本篇文章给大家带来的内容是关于php中0,空,null和false之间有何区别,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

$a = 0; $b= 0 $d= null; $e = false;echo 5个变量-原始测试类型  var_dump($a);//int 0 var_dump($b);//string 0  var_dump($c);//string  var_dump($d);//null var_dump($e);//boolean falseecho h4 empty测试 /h4  var_dump(empty($a));//true var_dump(empty($b));//true var_dump(empty($c));//true var_dump(empty($d));//true var_dump(empty($e));//trueecho hr  var_dump(isset($a));//true var_dump(isset($b));//true var_dump(isset($c));//true var_dump(isset($d));//【false】 见结论一 var_dump(isset($e));//trueecho h4 (==)双等式测试 /h4  var_dump($a == $b);//true var_dump($a == $c);//true var_dump($a == $d);//true var_dump($a == $e);//true !! var_dump($b == $c);//【false】见结论二 var_dump($b == $d);//【false】见结论二 var_dump($b == $e);//true var_dump($c == $d);//true var_dump($c == $e);//trueecho h4 (===)三等式测试 /h4  var_dump($a === $b);//false var_dump($a === $c);//false var_dump($a === $d);//false var_dump($a === $e);//false var_dump($b === $c);//false var_dump($b === $d);//false var_dump($b === $e);//false var_dump($c === $d);//false var_dump($c === $e);//false

总结:

对于 【0 ; 0 ; ;null; false】五种类型

empty操作以上五个变量,都返回false

强等于(===)比较 都为false,同强语言结果(三个等号比较不但要比较值,而且要比较类型)

但对于(==)比较,需要注意string类型,涉及到底层结构与类型转换

结论一:关于变量类型的理解

1.null为不存在之意:php底层的zval空间里(结构见下方)没有存其html' target='_blank'>value值,只存储了一个type标志其 IS_NULL(所以解释了 empty(null)=true,isset(null)=false ,isset( )=true)

2.【0 ; 0 ; ; false 】:这四个为存在,php底层是开辟zval空间存储,有value,有type

结论二:

1、string 0 与 string 不相等,(想一下就明白,同类型比较【1个长度】的字符串怎么可能 等于 【0个长度】 的字符串)

2、int 0 却和 string 空相等,(非同类形比较,php会做类型转换)

3、string 0 与 null 不相等,int 0 与 null 相等

相关推荐:

php中0与null与false与空的区别

以上就是php中0,空,null和false之间有何区别(代码示例)的详细内容,PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表