Вызов другой функции в PHP с массивом в качестве параметра, передающим только первый элемент (JSON RPC)

это может быть довольно глупый вопрос. Я искал в Интернете и много пробовал, но просто не могу найти решение.

Я отправляю основные объекты данных в виде словарей в массиве в мой веб-сервис 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

)

Может кто-нибудь объяснить мне, почему не весь массив, а только первый элемент передается?

0

Решение

Пожалуйста, попробуйте пройти так,

$result = @call_user_func_array(array($object,$request['method']),array($request['params'])))

передать $ request [‘params’] внутри другого массива.

0

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

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

По вопросам рекламы [email protected]