问题起由:PHP中if(true==2)会返回true还是false?
结果是返回true,顺着这个问题,我把php其他数据类型也测试一下。
结论:
转化为bool类型时,会变成false的几种数据:
1.整型0
2.空字符串
3.空数组
4.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
45
46
47
48
49
50
51
52
|
<?php function p( $title , $mybool ){ echo "<pre>" . $title ; echo var_dump( $mybool ). "</pre>" ; } class foo { function do_foo() { echo "你好!" ; } } echo "<pre>PHP中的其他类型转化为Bool类型</pre>" ; //零 $n0 =boolval(0); p( "零:" , $n0 ); //正整数 $n =boolval(2); p( "正整数:" , $n ); //负整数 $nx =boolval(-2); p( "负整数:" , $nx ); //字符空格 $ss =boolval( " " ); p( "字符空格:" , $ss ); //空字符串 $sn =boolval( "" ); p( "空字符串:" , $sn ); //字符串 $s =boolval( "chinacion" ); p( "字符串:" , $s ); //空数组 $an =boolval( array ()); p( "空数组:" , $an ); //数组 $a =boolval( array (0=>1)); p( "数组:" , $a ); //null类型 $nu = boolval(NULL); p( "NULL:" , $nu ); //object $bar = new foo; $bar ; $obj = boolval( $bar ); p( "Object:" , $obj ); |