Intereting Posts
Вставка столбца индекса jquery tablesorter PHP добавляет элементы в многомерный массив с помощью массива array_push BadMethodCallException: вызов неопределенного метода Illuminate \ Database \ Query \ Builder :: detach () Максимальная длина строки в почте неопределенный метод PDO lastInsertId Как очистить память после того, как file_get_contents выполняется в php Файл изображения Android, отправленный в файл загрузки файла php, – это тип приложения / октета-потока, а не изображение / jpeg? Путь к файлам электронной почты Mandrill Включить те же заголовки и нижние колонтитулы в несколько html-файлов Как я могу разбить строку при первом появлении «-» (знак минус) на два $ vars с PHP? Показывать пользовательское поле продукта до краткого описания в WooCommerce Как получить номер узла на основе родительского узла динамически из файла xsd с помощью PHP Базовый php для установки ширины столбца в Joomla Ни один поддерживаемый encrypter не найден Предупреждение: ldap_mod_replace (): Изменить: сервер не желает выполнять

PHP – Получить bool для эхо-фальшивости, когда false

По какой-то причине следующий код ничего не распечатывает:

$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"