问题起由: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 );
|