2009-09-22 243 views
2

在PHP中,有沒有辦法將函數的參數直接發送到另一個函數,而無需逐個指定它們?有沒有辦法擴展func_get_arg(),以便其他函數接收單個參數而不是單個數組?將函數的參數直接傳遞給另一個函數

我想從foo()發送參數直bar()像這樣:

function foo($arg1, $arg2, $arg3) 
{ 
    $args = expand_args(func_get_arg()); 
    bar($args); 
} 

回答

5

肯定。

function foo($arg1, $arg2, $arg3) 
{ 
    $args = func_get_arg(); 

    call_user_func_array("bar",$args); 

} 
0

如果你想調用它屬於一個完全獨立的類的實例的功能,即可以通過將第一個參數來call_user_func_array作爲數組來完成。

在此示例中,函數foo接受任何參數,並將它們直接傳遞到$bar->baz->bob(),並返回結果。

public function foo(/* example arguments */) 
{ 
    return call_user_func_array 
    (
     array($bar->baz, 'bob'), 
     func_get_args() 
    ); 
} 
相關問題