Ответ 1
echo $bool_val ? 'true' : 'false';
Или если вы хотите только вывод, когда он false:
echo !$bool_val ? 'false' : '';
Следующий код ничего не распечатывает:
$bool_val = (bool)false;
echo $bool_val;
Но следующий код печатает 1
:
$bool_val = (bool)true;
echo $bool_val;
Есть ли лучший способ вывести 0
или false
когда $bool_val
имеет значение false
чем добавление оператора if
?
echo $bool_val ? 'true' : 'false';
Или если вы хотите только вывод, когда он false:
echo !$bool_val ? 'false' : '';
Это самый простой способ сделать это:
$text = var_export($bool_value,true);
echo $text;
или
var_export($bool_value)
Если второй аргумент неверен, он выведет результат напрямую.
Нет, поскольку другая опция модифицирует движок Zend, и было бы трудно называть это "лучшим способом".
Edit:
Если вы действительно этого захотите, вы можете использовать массив:
$boolarray = Array(false => 'false', true => 'true');
echo $boolarray[false];
Это будет выводить логическое значение как есть, вместо 1/0.
$bool = false;
echo json_encode($bool); //false
Мне нравится этот, чтобы распечатать это
var_dump ($var);
Попробуйте преобразовать логическое значение в целое число?
echo (int)$bool_val;
var_export
обеспечивает желаемую функциональность.
Это всегда будет печатать значение, а не печатать ничего для null
или false
. var_export
печатает представление PHP аргумента, который он передал, вывод может быть скопирован/вставлен обратно в PHP.
var_export(true); // true
var_export(false); // false
var_export(1); // 1
var_export(0); // 0
var_export(null); // NULL
var_export('true'); // 'true' <-- note the quotes
var_export('false'); // 'false'
Если вы хотите напечатать строки "true"
или "false"
, вы можете привести к булевому значению, как показано ниже, но остерегайтесь особенностей:
var_export((bool) true); // true
var_export((bool) false); // false
var_export((bool) 1); // true
var_export((bool) 0); // false
var_export((bool) ''); // false
var_export((bool) 'true'); // true
var_export((bool) null); // false
// !! CAREFUL WITH CASTING !!
var_export((bool) 'false'); // true
var_export((bool) '0'); // false
Это дает 0
или 1
:
intval($bool_val);
echo(var_export($var));
Когда $var
- логическая переменная, true
или false
будут распечатаны.
Вы можете использовать тернарный оператор
echo false ? 'true' : 'false';
Опция %b
sprintf() преобразует логическое значение в целое число:
echo sprintf("False will print as %b", false); //False will print as 0
echo sprintf("True will print as %b", true); //True will print as 1
Если вы не знакомы с этим: вы можете дать этой функции произвольное количество параметров, в то время как первая должна быть вашей строкой вывода, приправленной с помощью заменяющих строк, таких как %b
или %s
для общей замены строки.
Каждый шаблон будет заменен аргументом в следующем порядке:
echo sprintf("<h1>%s</h1><p>%s<br/>%s</p>", "Neat Headline", "First Line in the paragraph", "My last words before this demo is over");
json_encode сделает это из коробки, но не очень (отступом и т.д.):
echo json_encode(array('whatever' => TRUE, 'somethingelse' => FALSE));
... дает...
{"whatever":true,"somethingelse":false}
function dump_condition($condition){
if($condition){
return "true";
} else {
return "false";
}
}
использовать script
echo dump_condition(1>0); // print "true"
echo dump_condition(1<0); // print "false"