作者evernever (NeverEver)
看板PHP
標題Re: [請益] 有沒有方法取代call_user_func_array
時間Tue Jul 13 13:39:53 2010
讓 client 傳入 associate array (key => value)
例:
$params = get_client_params();
/* client 的參數沒照順序
array(
'not' => xxx,
'credit' => yyy,
'uid' => zzz,
'appid' => www
)
*/
// 現在來排好你要的順序
$ordered_params = array(
$params['uid'],
$params['credit'],
$params['appid'],
$params['not']
);
//再來就照你原本的 Code 呼叫即可
$class = new $module();
$response = @call_user_func_array(array(&$class, $method),
$ordered_params);
※ 引述《knives ()》之銘言:
: 我有一個API , 其他Client只需要傳入三個變數
: $module : 要呼叫的物件
: $method : 要使用的物件方法
: $params : 物件方法需要用到的參數
: 其中$params 是傳入一個json 格式的字串,再透過json_decode轉換成陣列
: 接著,我的API 就會用下面的語法去呼叫Client需要的資源
: $class = new $module();
: $response = @call_user_func_array(array(&$class, $method), $params);
: 可是現在有個問題是,某物件有一個function update ($uid , $credits,$appid,$note)
: 因為 Client在傳入參數$params的時候
: 似乎要按照 uid, credits, appid,note 這樣的順序
: 才能正確work
: 不知道要怎麼改才能讓裡面的function 所使用的參數,能正確的對應到
: $params裡面的鍵值
: 謝謝回答
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 124.168.175.80
→ knives:問題是:我又不只一個function,傳的參數數量、順序又不一致 07/13 13:51
→ evernever:你應該有存哪些 $module & $methods 可以被呼叫吧 07/13 13:53
→ evernever:如果有, 存 method name的同時也存 param的順序 07/13 13:54
→ evernever:這樣就可以查每個method的排法&順序 07/13 13:54