1. 当前位置:首页>百科>php中0,空,null和false之间有何区别

php中0,空,null和false之间有何区别

本篇文章给大家带来的内容是关于php中0,空,null和false之间有何区别,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

$a =  0;

$b="0";

$c= '';

$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 false

  

echo "<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));//true

  

echo "<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));//true

  

echo "<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);//true

  

echo "<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空间里(结构见下方)没有存其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 相等


本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.5amiao.com/baike/1962.html

联系我们

在线咨询:点击这里给我发消息

QQ号:1045784018

工作日:10:00-17:00,节假日休息