Как вызвать функцию внутри массива

Я создам json-файл с PHP с помощью json_encode. Я намереваюсь включить функцию, которую я буду вызывать внутри массива, прежде чем изменить ее на 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

Решение

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

Выход:

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

постскриптум Лично я бы не стал писать для этого собственную функцию. Просто приготовьтесь (bool) непосредственно к вашему значению массива.

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

Опять же, если у вас есть отрицательные числа или какой-то другой случай, используйте:

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

Другие решения

Других решений пока нет …