鑑於冗餘,是否有更好的方法來做到這一點?如果是這樣,它會是什麼樣子?傳遞可變參數列表
請注意第一個$method
參數,該參數作爲函數名稱在$api
類中傳遞,並且不能作爲參數傳遞給API函數。其後每一個論證都可能不存在。
function jsonRequest($method)
{
$api = new JsonRpcClient('https://api.example.com');
switch (func_num_args()) {
case 2:
$result = $api->$method('AccountRef', 'APIKey', func_get_arg(1));
break; case 3:
$result = $api->$method('AccountRef', 'APIKey', func_get_arg(1), func_get_arg(2));
break; case 4:
$result = $api->$method('AccountRef', 'APIKey', func_get_arg(1), func_get_arg(2), func_get_arg(3));
break; case 5:
$result = $api->$method('AccountRef', 'APIKey', func_get_arg(1), func_get_arg(2), func_get_arg(3), func_get_arg(4));
break;
}
return json_decode($result);
}
你可以使用一個for循環? – twodayslate
那將是什麼樣子?我考慮過它,但是無法將我的頭部用於將函數調用引發的語法。 –
你可以爲擴展參數傳遞'func_get_arg(2)'或'NULL'嗎? –