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}]
p.s. Лично я бы не стал писать для этого собственную функцию. Просто добавьте (bool)
непосредственно к значению вашего массива.
$arrayList = [ [ 'uid' => 1234, 'nilai' => (bool) 1 ] ];
Опять же, если у вас отрицательные числа или какой-то другой случай, используйте:
if ($value == 0) {
return false; // boolean, not string
} else {
return true; // boolean, not string
}