Irv*_*gga 0 php arrays boolean return-type custom-function
我将使用带有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);
Run Code Online (Sandbox Code Playgroud)
输出json
true[{"uid":"1234","nilai":null}]
Run Code Online (Sandbox Code Playgroud)
如果我想要如下所示的json输出怎么办?
[{"uid":"1234","nilai":true}]
Run Code Online (Sandbox Code Playgroud)
所以函数(getBoolean)的值进入json不在外面.谢谢
PHP使用应用程序订单评估策略,因此getBoolean(1)将在分配数组之前对其进行评估$arrayList.
但是,您的getBoolean功能有一个错误.您需要return一个布尔类型值,而不是布尔值的字符串版本.
$arrayList = [ [ 'uid' => '1234', 'nilai' => getBoolean (1) ] ];
function getBoolean ($value) {
return (bool) $value;
}
echo json_encode ($arrayList);
Run Code Online (Sandbox Code Playgroud)
输出:
[{"uid":"1234","nilai":true}]
Run Code Online (Sandbox Code Playgroud)
ps我个人不打算为此编写自定义函数.只是(bool)直接预先添加到您的数组值.
$arrayList = [ [ 'uid' => 1234, 'nilai' => (bool) 1 ] ];
Run Code Online (Sandbox Code Playgroud)
如果您有负数或其他边缘情况,请再次使用:
if ($value == 0) {
return false; // boolean, not string
} else {
return true; // boolean, not string
}
Run Code Online (Sandbox Code Playgroud)