这是最简单的类型。布尔值表示的是一个真值。它既可以是 TRUE 也可以是 FALSE。
提示:布尔值类型在 PHP 4 中才被引入。
语法
如果要从字面上指定一个布尔值,可以使用关键字 TRUE 或者 FALSE。这两个值对于字母大小写不敏感。
<?php
$foo = True; // 把 TRUE 值赋给变量 $foo
?>
通常你会使用一些类型和操作符来返回一个布尔值,然后把它传递给控制结构。
<?php
// == 是一个测试等式并且返回布尔值的操作符
if ($action == "show_version") {
echo "The version is 1.23";
}
// 这不是必需的...
if ($show_separators == TRUE) {
echo "<hr>\n";
}
// ... 因为你完全可以这样编写
if ($show_separators) {
echo "<hr>\n";
}
?>
转换成布尔值
如果要明确地把一个值转换成布尔值,就可以使用 (bool) 或者 (boolean) 转换。但是,在多数情况下你不需要使用这个转换,因为布尔值会自动进行转换,如果某个操作符,功能或者控制结构需要一个布尔值参数的话。
参考[类型戏法]。
在转换到布尔值的时候,下列值就会被考虑成 FALSE:
- 布尔值 FALSE 自身
- 整数 0(零)
- 浮点数 0.0(零)
- 空字符串,以及字符串[0]
- 包含零个元素的数组
- 零个成员变量的对象(只在 PHP 4 中有效)
- 特殊类型 NULL(包括未设置的变量)
- 从空标记那里创建的 SimpleXML 对象
每种其他值都会被考虑成 TRUE(包括任何资源)。
注意:-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)
?>