PHP 布尔型

示例

布尔值是一种类型,具有两个值,表示为true或false。

此代码设置$fooastrue和$baras的值false:

$foo = true;
$bar = false;

true和false不区分大小写的,所以TRUE和FALSE可以用作良好,即使FaLsE是可能的。在大多数代码样式指南(例如PSR-2)中,使用小写是最常见的建议。

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

if ($foo) { //与评估if($foo == true)相同
    echo "true";
}

由于PHP是弱类型的,因此,如果$foo上述不是trueor false,则它会自动强制为布尔值。
以下值导致false:

  • 零值:(0整数),0.0(浮点数)或'0'(字符串)

  • 空字符串''或数组[]

  • null (未设置变量或分配给变量的内容)

其他任何值都会导致true。

为了避免这种松散的比较,您可以使用===进行强比较,该比较会比较value和type。有关详细信息,请参见类型比较。

要将类型转换为布尔值,可以在类型之前使用(bool)  或(boolean)强制转换。

var_dump((bool) "1"); //评估为真

或调用boolval函数:

var_dump( boolval("1") ); //评估为真

布尔值转换为字符串(注意会false产生一个空字符串):

var_dump( (string) true ); // string(1) "1"
var_dump( (string) false ); // string(0) ""

布尔转换为整数:

var_dump( (int) true ); // 整数(1)
var_dump( (int) false ); // 整数

请注意,相反的情况也是可能的:

var_dump((bool) "");        // 布尔值(false)
var_dump((bool) 1);         // 布尔值(true)

同样,所有非零值都将返回true:

var_dump((bool) -2);        // 布尔值(true)
var_dump((bool) "foo");     // 布尔值(true)
var_dump((bool) 2.3e5);     // 布尔值(true)
var_dump((bool) array(12)); // 布尔值(true)
var_dump((bool) array());   // 布尔值(false)
var_dump((bool) "false");   // 布尔值(true)