我有JSON:
[{"name":"point","visibility":false},{"name":"php_first_table","visibility":true}]
我做:
$Arr = json_decode($json,true);
我明白了:
Array
(
[0] => Array
(
[name] => point
[visibility] =>
)
[1] => Array
(
[name] => php_first_table
[visibility] => 1
)
)
如何以布尔形式保存true和false?
答案 0 :(得分:8)
它已经是布尔形式。尝试使用var_dump($array[0]['visibility']);
,然后输出bool(true)
或bool(false)
。
print_r
会自动将布尔值转换为1
为true,(empty)
为false,但不会更改数据类型。
您可以在阵列上使用var_dump
来获得更好的输出:
<?php
$array = array(
'booleanTrue' => true,
'booleanFalse' => false,
'integer' => 1
);
var_dump($array);
print_r($array);
/*
array(3) {
["booleanTrue"]=>
bool(true)
["booleanFalse"]=>
bool(false)
["integer"]=>
int(1)
}
Array
(
[booleanTrue] => 1
[booleanFalse] =>
[integer] => 1
)
*/
?>
修改强>:
这里的功能是为您提供与var_dump
非常相似的更好/更紧凑的print_r
输出:
<?php
function var_dump_r($variable, $return = false) {
ob_start();
var_dump($variable);
$output = preg_replace('/\["([^"]+)"\]/', '[$1]', preg_replace('/\s*=>\s*/', ' => ', ob_get_clean()));
if (!$return) {
echo $output;
}
return $return;
}
var_dump_r(array(
'booleanTrue' => true,
'booleanFalse' => false,
'integer' => 1
));
/*
array(3) {
[booleanTrue] => bool(true)
[booleanFalse] => bool(false)
[integer] => int(1)
}
*/
?>
答案 1 :(得分:4)
您是否正在使用print_r
或类似内容进行打印? (专业提示:不要)。
答案 2 :(得分:1)
TRUE始终是大于0的值,FALSE是0,因此您只需检查
if ($visibility) {
// do something
}