如何在数组内部调用函数

时间:2019-01-17 03:28:08

标签: 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);

输出json

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

如果我想要下面的json输出怎么办

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

因此,函数(getBoolean)的值进入json而不是外部。谢谢

1 个答案:

答案 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); 一个布尔类型值,而不是布尔值的字符串版本。

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

[{"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