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