在PHP中,是否有一种方法可以从布尔值获取“true”/“false”字符串值?

6
当我使用 (bool) 进行布尔转换时,是否有内置的方式使 PHP 返回常量 truefalse。目前我得到的是 1 或空白,它们分别被评估为 true 和 false。
我希望返回更清晰语义的值。但是如果无法获取,我将只能接受 1 和空白。

2
如果你担心语义问题,一个更有用的问题可能是如何为调试目的输出 true/false 值——在这种情况下,你可能更感兴趣的是,比如说,包装 print 函数或类似的东西。 - Amber
1
@Dav 谢谢,我没有彻底思考我的问题。我是原始输出,我没有意识到我不会使用这些值来显示在我的视图中。 - alex
3个回答

11

如果您懒得进行比较并echo一个字符串,或者想保持简短,可以使用以下方法:

var_export($boolean, true); // the second parameter is to return and not output

PHP:var_export


这实际上应该是被接受的答案,任何询问 PHP 问题的人都应该知道如何使用三元运算符。然而,我想补充一点。如果你想要像 cletus 的回答中提到的那样进行隐式转换,你应该先将 $boolean 强制转换为 (boolean)$boolean。这将返回像 1 这样的值的 'true' - D.Meganoski

7

当输出时,PHP将布尔值显示为1(true)或空字符串(false)。

如果您想检查它是true还是false,请使用==(如果隐式转换可以)或===(如果不行)。例如:

echo $val ? 'true' : 'false'; // implicit conversion
echo $val === true ? 'true' : 'false'; // no conversion

我不知道有什么方法可以使PHP原生输出布尔值为truefalse


我认为他想要字符串值“true”或“false”。 - Jeremy Logan
谢谢,但那并没有告诉我任何我不知道的东西。实际上,我认为我的问题有点傻。 - alex
@fiXedd:我的最后一句话没有解决这个问题吗? - cletus

0
如果你正在寻找字符串“true”和“false”,三元条件运算符将是完美的选择:
<?=(($boolean) ? "true" : "false")?>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接