Следующий код ничего не распечатывает:
$bool_val = (bool)false;
echo $bool_val;
Но следующий код печатает 1
:
$bool_val = (bool)true;
echo $bool_val;
Есть ли лучший способ печати 0
или false
когда $bool_val
это false
чем добавление if
заявления?
(bool)
Литой является излишней, вы не должны литым BOOL BOOL к:(bool) true === true
.echo 0==1;
выводит0
илиfalse
?Ответы:
Или, если вы хотите вывод, только когда он ложен:
источник
FALSE == ''
. Это совершенно справедливо и часть других языков, в том числе javascript. Что странно, так это то, что FALSE по умолчанию использует пустую строку. По умолчанию должно быть 0. Всегда. Тем более что TRUE всегда будет по умолчанию 1. Это нарушает кардинальное правило программирования. Держите ваш код в соответствии. Это явно ошибка.!! '0'
оцениваетfalse
в PHP, этоtrue
в JS.!! ""
ложно в JS и PHP.Это самый простой способ сделать это:
или
Если второй аргумент неверен, он выведет результат напрямую.
источник
Нет, поскольку другой вариант - модификация движка Zend, и трудно было бы назвать это «лучшим способом».
Редактировать:
Если вы действительно хотите, вы можете использовать массив:
источник
Это выведет логическое значение как есть, вместо 1/0.
источник
Попробуйте преобразовать ваш логический в целое число?
источник
Мне нравится этот, чтобы распечатать это
источник
var_export
обеспечивает желаемую функциональность.Это всегда будет печатать значение, а не печатать ничего для
null
илиfalse
.var_export
печатает PHP-представление передаваемого аргумента, вывод может быть скопирован / вставлен обратно в PHP.Если вы хотите напечатать строки
"true"
или"false"
, вы можете привести к логическому значению, как показано ниже, но остерегайтесь особенностей:источник
Это дает
0
или1
:Руководство по PHP: функция intval
источник
Когда
$var
это логическая переменная,true
илиfalse
будет распечатан.источник
var_export
в этом случае будет эхо его результат и возврат нуля, так var_export выводитtrue || false
, иecho
это эхоnull
(''
). Чтобы вернуть вывод изvar_export
, вам нужно предоставить второй параметр какtrue
.json_encode
, это лучший вариант.Вы можете использовать троичный оператор
источник
%b
Вариант Sprintf () преобразует логическое значение в целое число:Если вы не знакомы с ней: вы можете дать этой функции произвольное количество параметров, в то время как первая должна быть вашей выходной строкой, дополненной замещающими строками, такими как
%b
или%s
для обычной замены строк.Каждый шаблон будет заменен аргументом в следующем порядке:
источник
json_encode сделает это из коробки, но это не красиво (с отступом и т. д.):
... дает ...
источник
использовать по сценарию
источник
Вы приводите логическое значение к логическому и ожидаете, что будет показано целое число. Это работает,
true
но не ложь. Так как вы ожидаете целое число:источник