下面的代码不输出任何东西:
$bool_val = (bool)false;
echo $bool_val;
但是下面的代码输出1:
$bool_val = (bool)true;
echo $bool_val;
当$bool_val为false时,是否有更好的方法打印0或false,而不是添加if语句?
下面的代码不输出任何东西:
$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函数
其他回答
如果你想调试一个数组,你可以试试这个:
function debug_array($a){
return array_map(function($v){
return is_bool($v) ? ($v ? 'true' : 'false') : $v;
}, $a);
}
使用它:
$arr = debug_array(['test' => true, 'id' => false]);
print_r($arr); // output Array ( [test] => true [id] => false )
echo(var_export($var));
当$var是布尔变量时,true或false将被打印出来。
你可以使用三元运算符
echo false ? 'true' : 'false';
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
Json_encode将开箱即用,但它并不漂亮(缩进等):
echo json_encode(array('whatever' => TRUE, 'somethingelse' => FALSE));
给了…
{"whatever":true,"somethingelse":false}