如何调用数组内的函数

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不在外面.谢谢

mic*_*usa 7

PHP使用应用程序订单评估策略,因此getBoolean(1)将在分配数组之前对其进行评估$arrayList.

但是,您的getBoolean功能有一个错误.您需要return一个布尔类型值,而不是布尔值的字符串版本.

代码:(https://3v4l.org/AOdn3B)

$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)