布尔

Boolean 是一种类型,有两个值,表示为 truefalse

此代码将 $foo 的值设置为 true,将 $bar 设置为 false

$foo = true;
$bar = false;

truefalse 不区分大小写,所以 TRUEFALSE 也可以使用,甚至 FaLsE 也是可以的。在大多数代码风格指南中使用小写字母是最常见的,例如 PSR-2

布尔可以在 if 语句中使用:

if ($foo) { //same as evaluating if($foo == true)
    echo "true";
}

由于 PHP 是弱类型的,如果上面的 $foo 不是 truefalse,它会自动强制转换为布尔值。
以下值导致 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)