布尔
Boolean 是一种类型,有两个值,表示为 true
或 false
。
此代码将 $foo
的值设置为 true
,将 $bar
设置为 false
:
$foo = true;
$bar = false;
true
和 false
不区分大小写,所以 TRUE
和 FALSE
也可以使用,甚至 FaLsE
也是可以的。在大多数代码风格指南中使用小写字母是最常见的,例如 PSR-2 。
布尔可以在 if 语句中使用:
if ($foo) { //same as evaluating if($foo == true)
echo "true";
}
由于 PHP 是弱类型的,如果上面的 $foo
不是 true
或 false
,它会自动强制转换为布尔值。
以下值导致 false
:
- 零值:
0
(整数),0.0
(浮点数)或'0'
(字符串) - 一个空字符串
''
或数组[]
null
(未设置变量的内容,或分配给变量)
任何其他值都会导致 true
。
为避免这种松散的比较,你可以使用 ===
强制进行强比较,===
比较值和类型。请参阅类型比较了解详情。
要将类型转换为布尔值,你可以在类型之前使用 (bool)
或 (boolean)
。
var_dump((bool) "1"); //evaluates to true
或者调用 boolval
函数:
var_dump( boolval("1") ); //evaluates to true
布尔转换为字符串(注意 false
产生一个空字符串):
var_dump( (string) true ); // string(1) "1"
var_dump( (string) false ); // string(0) ""
布尔值转换为整数:
var_dump( (int) true ); // int(1)
var_dump( (int) false ); // int(0)
请注意,相反的情况也是可能的:
var_dump((bool) ""); // bool(false)
var_dump((bool) 1); // bool(true)
所有非零都将返回 true:
var_dump((bool) -2); // bool(true)
var_dump((bool) "foo"); // bool(true)
var_dump((bool) 2.3e5); // bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array()); // bool(false)
var_dump((bool) "false"); // bool(true)