По какой-то причине следующий код ничего не распечатывает:
$bool_val = (bool)false; echo $bool_val; 
Но следующий код печатает 1:
 $bool_val = (bool)true; echo $bool_val; 
Есть ли лучший способ распечатать 0 или false, если $ bool_val является ложным, чем добавление оператора if?
Изменить: изменил второй оператор от false до true
 echo $bool_val ? 'true' : 'false'; 
Или если вы хотите только вывод, когда он ложный:
 echo !$bool_val ? 'false' : ''; 
Это самый простой способ сделать это:
 $text = var_export($bool_value,true); echo $text; 
или
 var_export($bool_value) 
Если второй аргумент неверен, он будет выводить результат напрямую.
Нет, поскольку другой вариант изменяет движок Zend, и трудно было бы назвать это «лучшим способом».
Редактировать:
Если вы действительно этого хотели, вы можете использовать массив:
 $boolarray = Array(false => 'false', true => 'true'); echo $boolarray[false]; 
Мне это нравится, чтобы напечатать это
 var_dump ($var); 
Это будет выводить логическое значение как есть, вместо 1/0.
  $bool = false; echo json_encode($bool); //false 
Попробуйте преобразовать логическое значение в целое число?
  echo (int)$bool_val; 
  На мой взгляд, лучший способ добиться желаемого результата – с помощью var_export . 
  Это всегда будет печатать значение (а не скрывать null или false ), но оно даст вам информацию о том, что вы печатаете.  var_export сообщает вам, какое значение у вас есть, оно пытается буквально распечатать ваше значение, чтобы вы могли скопировать / вставить результат в 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' 
Конечно, если вы строго хотите «логическую» строку, вы можете использовать ее как логическое, как в следующем примере, но будьте осторожны при кастинге «gotchas»!
 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 
 echo(var_export($var)); 
  Когда $var является логической переменной, будет напечатано значение true или false . 
  Это дает 0 или 1 : 
 intval($bool_val); 
Руководство PHP: функция intval
Вы можете использовать тернарный оператор
 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"; } } 
использовать скрипт
 echo dump_condition(1>0); // print "true" echo dump_condition(1<0); // print "false"