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上述不是trueorfalse,则它会自动强制为布尔值。
以下值导致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)