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

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

$bool_val = (bool)false;
echo $bool_val;

Но следующий код печатает 1:

$bool_val = (bool)true;
echo $bool_val;

Есть ли лучший способ вывести 0 или false когда $bool_val имеет значение false чем добавление оператора if?

Ответ 1

echo $bool_val ? 'true' : 'false';

Или если вы хотите только вывод, когда он false:

echo !$bool_val ? 'false' : '';

Ответ 2

Это самый простой способ сделать это:

$text = var_export($bool_value,true);
echo $text;

или

var_export($bool_value)

Если второй аргумент неверен, он выведет результат напрямую.

Ответ 3

Нет, поскольку другая опция модифицирует движок Zend, и было бы трудно называть это "лучшим способом".

Edit:

Если вы действительно этого захотите, вы можете использовать массив:

$boolarray = Array(false => 'false', true => 'true');
echo $boolarray[false];

Ответ 4

Это будет выводить логическое значение как есть, вместо 1/0.

    $bool = false;

    echo json_encode($bool);   //false

Ответ 5

Мне нравится этот, чтобы распечатать это

var_dump ($var);

Ответ 6

Попробуйте преобразовать логическое значение в целое число?

 echo (int)$bool_val;

Ответ 7

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

Ответ 9

echo(var_export($var)); 

Когда $var - логическая переменная, true или false будут распечатаны.

Ответ 10

Вы можете использовать тернарный оператор

echo false ? 'true' : 'false';

Ответ 11

Опция %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");

Ответ 12

json_encode сделает это из коробки, но не очень (отступом и т.д.):

echo json_encode(array('whatever' => TRUE, 'somethingelse' => FALSE));

... дает...

{"whatever":true,"somethingelse":false}

Ответ 13

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"