下面的代码不输出任何东西:

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

但是下面的代码输出1:

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

当$bool_val为false时,是否有更好的方法打印0或false,而不是添加if语句?


当前回答

结果是0或1:

intval($bool_val);

PHP手册:intval函数

其他回答

sprintf()的%b选项将把一个布尔值转换为整数:

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");

这是最简单的方法:

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

or

var_export($bool_value)

如果第二个参数不为真,它将直接输出结果。

我想用这个打印出来

var_dump ($var);

你可以使用三元运算符

echo false ? 'true' : 'false';

Json_encode将开箱即用,但它并不漂亮(缩进等):

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

给了…

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