PHP 中的空元素和 NULL

变量为空和值为 NULL 的变量是各大编程语言中都容易混淆的概念,今天就总结一下 PHP 中的空元素和 NULL 常量。

运行

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
<?php

/**
* 测试 PHP 中的 null, false, '0', '', 0, array(), var $var 是否:相等、全等、为空、为 NULL
* 没有任何属性的元素都为空
* NULL 类型只有一个值,就是不区分大小写的特殊常量 NULL,表示变量没有值
* 在下列情况下一个变量被认为是 NULL:被赋值为 NULL;尚未被赋值;被 unset()
* 使用 `(unset) $var` 将一个变量转换为 null 不会删除该变量或 unset 其值,仅是返回 NULL 值而已
*/
$cpr = array(
'null' => null,
'false' => false,
'0' => 0,
"''" => '',
"'0'" => '0',
'array()' => array(),
'$var' => @$var
);

$len = count( $cpr ) ;

foreach ( $cpr as $k=>$v ) {
$keys[] = $k ;
$vals[] = $v ;
}
echo '在 PHP 中:'."\n\n" ;

for ( $i=0; $i<$len; ++$i ) {
echo "\n", $keys[ $i ] ;
echo ( empty( $vals[ $i ] ) ) ? ' 为空' : ' 不为空' ;
echo ( is_null( $vals[ $i ] ) ) ? ' 且为 NULL' : ' 但不为 NULL' ;
echo "\n" ;

for ( $j=$i+1; $j<$len; ++$j ) {
if ( $vals[ $i ] == $vals[ $j ] ) {
if ( !($vals[ $i ] === $vals[ $j ]) ) {
echo "\n\t", $keys[ $i ], ' 和 ', $keys[ $j ], ' 的值相等, 但是类型不相等', "\n" ;
}
} else {
echo "\n\t", $keys[ $i ], ' 和 ', $keys[ $j ], ' 不相等', "\n" ;
}
echo "\n" ;
}
}

总结

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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
在 PHP 中:


null 为空 且为 NULL

nullfalse 的值相等, 但是类型不相等


null0 的值相等, 但是类型不相等


null'' 的值相等, 但是类型不相等


null'0' 不相等


nullarray() 的值相等, 但是类型不相等



false 为空 但不为 NULL

false0 的值相等, 但是类型不相等


false'' 的值相等, 但是类型不相等


false'0' 的值相等, 但是类型不相等


falsearray() 的值相等, 但是类型不相等


false$var 的值相等, 但是类型不相等


0 为空 但不为 NULL

0'' 的值相等, 但是类型不相等


0'0' 的值相等, 但是类型不相等


0array() 不相等


0$var 的值相等, 但是类型不相等


'' 为空 但不为 NULL

'''0' 不相等


''array() 不相等


''$var 的值相等, 但是类型不相等


'0' 为空 但不为 NULL

'0'array() 不相等


'0'$var 不相等


array() 为空 但不为 NULL

array() 和 $var 的值相等, 但是类型不相等


$var 为空 且为 NULL

Powered by Hexo and Hexo-theme-hiker

Copyright © 2017 - 2023 Keep It Simple And Stupid All Rights Reserved.

访客数 : | 访问量 :