这可能是一个非常模糊的问题。我一直在网上搜索并尝试很多,但我找不到解决方案。
我将Core Data Objects作为Dictionarys发送到我的PHP JSON RPC Web服务中。此时我不会深入研究,因为我知道我的JSON RPC格式正确。
在PHP方面,我确实有一个RPC服务器,它将获取JSON数据并将其传递给相应的函数。
$ request = json_decode(file_get_contents('php:// input'),true);
使用 print_r ,我得到以下结果
的print_r($请求[ 'PARAMS']);
(抱歉,我不知道如何在框中包含'数组('和结束')'
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(array($ object,$ request ['method']),$ request ['params']))
这将在我的实现类中调用 updateDaysFromClient 方法。 在这一点上,我想再说一遍,我的JSON RPC格式正确(方法,id,params)。
public function updateDaysFromClient($ clientDaysArray){
的print_r($ clientDaysArray);
返回“更新测试”;
}
现在出现了我的问题:在我的实现中,当调用作为参数传递的数组上的print_r时,我将只接收该数组的第一个元素。
阵 (
[dayId] => 7
[dayName] =>桑塔格
)
有人可以向我解释为什么不是整个数组而只传递第一个元素?
答案 0 :(得分:0)
请尝试这样传递,
$result = @call_user_func_array(array($object,$request['method']),array($request['params'])))
在另一个数组中传递$ request ['params']。