可能重复:
如何将布尔值转换为字符串
我认为问这个问题可能有点傻,但我仍然想知道是否有内置的方法来返回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'
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) }