這可能是一個相當虛擬的問題。我一直在尋找網絡,並嘗試了很多,但我無法找到解決方案。使用Array作爲參數調用PHP中的另一個函數僅傳遞第一個元素(JSON RPC)
我發送核心數據對象作爲數組中的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
)
)
如前所述,此陣列被現在傳遞給相應的使用
$結果= @call_user_func_array(陣列($對象,$請求[ '法']),$請求[ 'PARAMS']))
功能這將在我的實現類中調用方法updateDaysFromClient。 在這一點上,我想重申,我的JSON RPC格式正確(方法,ID,PARAMS)。
公共職能updateDaysFromClient($ clientDaysArray){
的print_r($ clientDaysArray);
return「Update test」;
}
現在到了我的問題:在我的實現,要求作爲參數傳遞的陣列上的print_r的時候,我就收到的只是數組的第一個元素。
陣列 (
[大衛·] => 7
[DAYNAME] =>桑塔格
)
任何人都可以向我解釋爲什麼不整個陣列但只有第一個元素被傳遞?
它的工作原理??????? – 2015-04-06 10:57:00
嗨Manadh,它的工作原理。萬分感謝!現在即時通訊等待計時器讓我接受你的問題:)爲什麼有必要將一個數組傳遞到另一個數組? – Erik 2015-04-06 11:02:57
由於我們使用的是call_user_func_array,它接受數組形式的參數和方法 – 2015-04-06 11:03:52