Почему PHP не печатает TRUE/FALSE?

Возможный дубликат:
PHP - Получить bool для эхо-фальшивости при ложных значениях

Учитывая следующий test.php:

<?php

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

?>

Почему не php -f test.php печатать TRUE или FALSE? Что еще более важно, в случае FALSE, почему он ничего не печатает?

Ответы

Ответ 1

Из manual:

Булево значение TRUE преобразуется в строку "1". Boolean FALSE преобразуется в "" (пустая строка). Это позволяет конвертировать назад и вперед между булевыми и строковыми значениями.

Ответ 2

Потому что false == '';

сделайте это, чтобы напечатать логические значения:

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

или...

echo $bool ? 'yes' : 'no';
echo $bool ? '1' : '0';

Ответ 3

Потому что логические значения при передаче в строку отливаются от 1 и пустой строки соответственно.

Предположительно, это должно обеспечить прозрачный обратный ход между булевым → string → boolean.