鉴于以下test.php:
<?php
echo TRUE . "\n"; // prints "1\n"
echo FALSE . "\n"; // prints "\n"
?>
为什么php -f test.php
不打印TRUE
或FALSE
?更重要的是,在FALSE
案例中,为什么不打印任何内容?
答案 0 :(得分:34)
来自manual:
布尔值TRUE值转换为字符串“1”。 Boolean FALSE转换为“”(空字符串)。这允许在布尔值和字符串值之间来回转换。
答案 1 :(得分:17)
因为false == '';
这样做可以打印布尔值:
$bool = false;
echo $bool ? 'true' : 'false';
...或
echo $bool ? 'yes' : 'no';
echo $bool ? '1' : '0';
答案 2 :(得分:5)
因为强制转换为字符串时的布尔值分别转换为1
和空字符串。
据说这是为了在boolean - &gt;之间启用透明往返。 string - &gt;布尔值。