布尔
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)