PHP - 获取bool以在false时回显false

时间:2011-02-09 18:02:25

标签: php boolean

以下代码不打印任何内容:

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

但以下代码打印1

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

0 false$bool_val时,是否有更好的方式来打印falseif而不是添加{{1}}声明?

14 个答案:

答案 0 :(得分:219)

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

或者如果您只想要输出错误:

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

答案 1 :(得分:55)

这是最简单的方法:

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

var_export($bool_value)

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

答案 2 :(得分:35)

不,因为另一个选项是修改Zend引擎,并且很难称之为“更好的方式”。

修改

如果你真的想,可以使用数组:

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

答案 3 :(得分:24)

这将按原样打印出布尔值,而不是1/0。

    $bool = false;

    echo json_encode($bool);   //false

答案 4 :(得分:19)

我喜欢这个打印出来

var_dump ($var);

答案 5 :(得分:17)

尝试将布尔值转换为整数?

 echo (int)$bool_val;

答案 6 :(得分:10)

var_export提供所需的功能。

这将始终打印一个值,而不是为nullfalse打印任何内容。 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

答案 7 :(得分:5)

这会给01

intval($bool_val);

PHP Manual: intval function

答案 8 :(得分:4)

echo(var_export($var)); 

$var为布尔变量时,将打印出truefalse

答案 9 :(得分:3)

您可以使用三元运算符

echo false ? 'true' : 'false';

答案 10 :(得分:3)

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

答案 11 :(得分:1)

json_encode会开箱即用,但它不漂亮(缩进等):

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

...给出...

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

答案 12 :(得分:0)

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"

答案 13 :(得分:0)

您将布尔值转换为布尔值,并希望显示整数。它适用于layout: /lib/x86_64-linux-gnu: bind: $SNAP/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu: bind: $SNAP/usr/lib/x86_64-linux-gnu ,但不是false。由于您期望一个整数:

true