如何在数组中调用函数

How to Call Function inside Array

我将使用 PHP 和 json_encode 创建一个 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 而不是外部。谢谢

PHP 使用 applicative order evaluation strategy 因此 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);

输出:

[{"uid":"1234","nilai":true}]

p.s。我个人不会费心为此编写自定义函数。只需将 (bool) 直接添加到您的数组值。

$arrayList = [ [ 'uid' => 1234, 'nilai' => (bool) 1 ] ];

然后,如果您有负数或其他一些边缘情况,请再次使用:

if ($value == 0) {
    return false; // boolean, not string
} else {
    return true; // boolean, not string
}