在PHP中转换为布尔值


Converting to Boolean Value in PHP

可能重复:
如何将布尔值转换为字符串

我认为问这个问题可能有点傻,但我仍然想知道是否有内置的方法来返回false或true,而不是0或1,实际上这段代码甚至不写0,而是写1:

<?php
$array = array(1,2,3);
echo (bool) $array;
?>

所以我希望这个代码写"true"或"false",而不是数值。我知道我可以构建一个函数,但我的好奇心喜欢学习一种内置的方法(如果有的话)。

只需使用条件运算符:

echo (true ? 'true' : 'false');
echo (false ? 'true' : 'false');

演示:http://codepad.org/hNHhXnBv

echo如果是布尔值,则始终打印0或1。相反,请使用var_dump()

另一种选择是根据值回显"true"或"false":

echo ((bool)$array) ? 'true' : 'false'
var_export()打印类型和结果。
echo var_export((bool)$array, 1);

我认为主要的问题是将数组ELEMENTS转换为布尔值,而不是将数组作为一个整体。

您可以使用函数array_map进行此操作。

function conv2bool($i) { return (bool) $i; }
$int_array = array(0,1,0,2,3);
$bool_array = array_map("conv2bool", $int_array);
var_dump($bool_array);

这将返回:

array(5) { [0]=> bool(false) [1]=> bool(true) [2]=> bool(false) [3]=> bool(true) [4]=> bool(true) }