20

可能重复:
PHP - 假时获取布尔以回显假

给定以下 test.php:

<?php

echo TRUE . "\n";    // prints "1\n"
echo FALSE . "\n";   // prints "\n"

?>

为什么不php -f test.php打印TRUEFALSE?更重要的是,在这种FALSE情况下,为什么它不打印任何东西?

4

3 回答 3

38

手册

布尔 TRUE 值转换为字符串“1”。Boolean FALSE 被转换为“”(空字符串)。这允许在布尔值和字符串值之间来回转换。

于 2012-08-12T11:07:34.667 回答
22

因为false == '';

这样做打印布尔值:

$bool = false;
echo $bool ? 'true' : 'false';

或者...

echo $bool ? 'yes' : 'no';
echo $bool ? '1' : '0';
于 2012-08-12T11:06:11.767 回答
7

因为转换为字符串时的布尔值1分别转换为空字符串。

据说这是为了在 boolean -> string -> boolean 之间实现透明的往返。

于 2012-08-12T11:06:08.167 回答