我将使用json_encode用PHP创建一个json文件。我打算包括一个在数组更改为json之前将在数组内部调用的函数。是否可以在数组内调用函数?
$arrayList = array(
array(
'uid' => "1234",
'nilai' => getBoolean (1)));
function getBoolean ($value) {
if ($value == 0 ) {
echo "false";
} else {
echo "true";
}
}
echo json_encode ($arrayList);
输出json
true[{"uid":"1234","nilai":null}]
如果我想要下面的json输出怎么办
[{"uid":"1234","nilai":true}]
因此,函数(getBoolean)的值进入json而不是外部。谢谢
答案 0 :(得分:7)
PHP使用applicative order evaluation strategy,因此在将{em getBoolean(1)
}分配给$arrayList
之前,将对getBoolean
进行求值。
但是,您的return
函数中存在错误。您需要$arrayList = [ [ 'uid' => '1234', 'nilai' => getBoolean (1) ] ];
function getBoolean ($value) {
return (bool) $value;
}
echo json_encode ($arrayList);
一个布尔类型值,而不是布尔值的字符串版本。
[{"uid":"1234","nilai":true}]
输出:
(bool)
p.s。我个人不会为此写一个自定义函数。只需将$arrayList = [ [ 'uid' => 1234, 'nilai' => (bool) 1 ] ];
直接添加到您的数组值即可。
if ($value == 0) {
return false; // boolean, not string
} else {
return true; // boolean, not string
}
然后再次使用负数或其他附带情况,请使用:
srqs