это может быть довольно глупый вопрос. Я искал в Интернете и много пробовал, но просто не могу найти решение.
Я отправляю основные объекты данных в виде словарей в массиве в мой веб-сервис PHP JSON RPC. Сейчас я не буду углубляться в это, потому что я знаю, что мой JSON RPC хорошо сформирован.
На стороне PHP у меня есть один RPC-сервер, который будет принимать данные JSON и передавать их соответствующей функции.
$ request = json_decode (file_get_contents (‘php: // input’), true);
С помощью print_r я получаю следующий результат
print_r ($ запрос [ ‘PARAMS’]);
(Извините, я не знаю, как включить ‘Array (‘ и закрывающий ‘)’ в поле)
Array
(
[0] => Array
(
[dayId] => 7
[dayName] => Sonntag
)
[1] => Array
(
[dayId] => 6
[dayName] => Samstag
)
[2] => Array
(
[dayId] => 4
[dayName] => Donnerstag
)
[3] => Array
(
[dayId] => 2
[dayName] => Dienstag
)
[4] => Array
(
[dayId] => 1
[dayName] => Montag
)
)
Как упоминалось ранее, этот массив теперь передается соответствующей функции с помощью
$ result = @call_user_func_array (массив ($ object, $ request [‘method’]), $ request [‘params’]))
Это вызовет метод updateDaysFromClient в моем классе реализации.
На этом этапе я хотел бы повторить, что мой JSON RPC правильно сформирован (метод, id, params).
публичная функция updateDaysFromClient ($ clientDaysArray) {
print_r ($ clientDaysArray);
вернуть «Обновить тест»;
}
Теперь возникает моя проблема: в моей реализации при вызове print_r для массива, переданного в качестве параметра, я получу только первый элемент этого массива.
массив
[dayId] => 7 [dayName] => Sonntag
()
Может кто-нибудь объяснить мне, почему не весь массив, а только первый элемент передается?
Пожалуйста, попробуйте пройти так,
$result = @call_user_func_array(array($object,$request['method']),array($request['params'])))
передать $ request [‘params’] внутри другого массива.
Других решений пока нет …