Ответ 1
Из manual:
Булево значение TRUE преобразуется в строку "1". Boolean FALSE преобразуется в "" (пустая строка). Это позволяет конвертировать назад и вперед между булевыми и строковыми значениями.
Возможный дубликат:
PHP - Получить bool для эхо-фальшивости при ложных значениях
Учитывая следующий test.php:
<?php
echo TRUE . "\n"; // prints "1\n"
echo FALSE . "\n"; // prints "\n"
?>
Почему не php -f test.php
печатать TRUE
или FALSE
? Что еще более важно, в случае FALSE
, почему он ничего не печатает?
Из manual:
Булево значение TRUE преобразуется в строку "1". Boolean FALSE преобразуется в "" (пустая строка). Это позволяет конвертировать назад и вперед между булевыми и строковыми значениями.
Потому что false == '';
сделайте это, чтобы напечатать логические значения:
$bool = false;
echo $bool ? 'true' : 'false';
или...
echo $bool ? 'yes' : 'no';
echo $bool ? '1' : '0';
Потому что логические значения при передаче в строку отливаются от 1
и пустой строки соответственно.
Предположительно, это должно обеспечить прозрачный обратный ход между булевым → string → boolean.