要将值显式转换为布尔值,可以使用 (bool) 或 (boolean) 强制转换。在大多数情况下,强制转换是不必要的,因为如果运算符、函数或控制结构需要 bool
参数,则会自动转换值。
转换为 bool 时,以下值被视为 false:
- 布尔值
false
本身 - 整数
0
和-0
(零) - 浮点数
0.0
和-0.0
(零) - 空字符串和字符串
"0"
- 一个元素为零的数组
- 特殊类型
NULL
(包括未设置的变量)
所有其他值都被认为是true
值,包括任何资源和 NAN
。-1
被认为是true
值,就像任何其他非零(无论是负数还是正数)数字一样!
<?php
var_dump((bool) ""); // bool(false)
var_dump((bool) 1); // bool(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)
?>
运行结果如下:
bool(false)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(false)
bool(true)