使用Array作为参数调用PHP中的另一个函数仅传递第一个元素(JSON RPC)

时间:2015-04-06 10:47:41

标签: php arrays json rpc

这可能是一个非常模糊的问题。我一直在网上搜索并尝试很多,但我找不到解决方案。

我将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] =>桑塔格

     

有人可以向我解释为什么不是整个数组而只传递第一个元素?

1 个答案:

答案 0 :(得分:0)

请尝试这样传递,

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

在另一个数组中传递$ request ['params']。