为什么PHP不打印TRUE / FALSE?

时间:2012-08-12 11:03:43

标签: php

  

可能重复:
  PHP - Get bool to echo false when false

鉴于以下test.php:

<?php

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

?>

为什么php -f test.php不打印TRUEFALSE?更重要的是,在FALSE案例中,为什么不打印任何内容?

3 个答案:

答案 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;布尔值。