有問題我正在嘗試解決。我有以下傳遞數組時發生PHP錯誤
$inputParams = array();
//fill up array
if (!empty($inputParams)) {
$controller = new ConnectionService();
$response = call_user_func_array(array($controller, "obtainToken"), $inputParams);
var_dump($inputParams);
}
現在,在上述的var_dump,輸出是一樣的東西
array(2) { [0]=> string(24) "[email protected]" [1]=> string(13) "+44776587535" }
所以它清楚地輸出的陣列。您還會看到我將該數組傳遞給call_user_func_array
調用中的函數。這個數組傳遞給我的ConnectionService
類,函數obtainToken
。
現在上面的方法做了一些工作(與數組),然後通過該陣列到另一個功能
public function obtainToken($inputParams)
{
//other stuff
try{
$this->insertData($inputParams);
} catch (Exception $e) {
var_dump($e);
}
}
然後爲陣
public function insertData($inputParams)
{
var_dump($inputParams);
try{
//some stuff
} catch (Exception $e) {
var_dump($e);
}
}
最後一個功能,你可以看,然後我再var_dump
的陣列,但是這一次我得到
string(24) "[email protected]"
所以浩W有我的數組從一個數組轉換成一個字符串?
感謝
我的錢在'some stuff'或'other stuff'上。 – billynoah
當你傳遞兩個參數時(因爲數組有兩個元素),你只能'捕獲'你的方法中的一個參數。要麼接受方法中的2個參數,要麼使用'call_user_func'如果你想要一個參數(數組) – PeeHaa
obtainToken沒有得到數組,只有數組 –