20

重複の可能性:
PHP-falseの場合にboolを取得してfalseをエコーする

次の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」に変換されます。ブール値の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、空の文字列にキャストされるためです。

おそらくこれは、ブール値->文字列->ブール値の間の透過的なラウンドトリップを有効にするためです。

于 2012-08-12T11:06:08.167 に答える