PHP函数-使用相同(变量数)参数调用self

PHP函数-使用相同(变量数)参数调用self,php,function,arguments,Php,Function,Arguments,我有一个PHP函数,可以接受数量可变的参数(我使用func\u get\u args()来处理它们) 此函数不是递归函数(“$ting”变量阻止它执行多次) 我希望test()使用给定的参数调用自己。例如: Test->Test(“a”、“b”、“c”)将输出以下内容: array(3){[0]=>string(1)“a”[1]=>string(1)“b”[2]=>string(1)“c”}使用调用用户函数数组 例如: class TestClass { private $ting =

我有一个PHP函数,可以接受数量可变的参数(我使用
func\u get\u args()
来处理它们)

此函数不是递归函数(“$ting”变量阻止它执行多次)

我希望test()使用给定的参数调用自己。例如:
Test->Test(“a”、“b”、“c”)将输出以下内容:


array(3){[0]=>string(1)“a”[1]=>string(1)“b”[2]=>string(1)“c”}
使用
调用用户函数数组

例如:

class TestClass {

    private $ting = FALSE;

    public function test() {
        $args = func_get_args();
        if ($this->ting) {
            var_dump($args);
        } else {
            $this->ting = TRUE;
            call_user_func_array(array($this, 'test'),$args);
        }
    }

}

$test = new TestClass();

//Outputs array(3) { [0]=> string(6) "apples" [1]=> string(7) "oranges" [2]=> string(5) "pears" }
$test->test("apples","oranges","pears");

对于只想找到标题中问题的简单答案的人,这将使用传递给它的相同参数调用当前类方法:

call_user_func_array([ $this, __FUNCTION__ ], func_get_args());
或者,如果它是一个简单函数(不是类中的方法),则可以执行以下操作:

call_user_func_array(__FUNCTION__, func_get_args());

为什么
&$this
而不仅仅是
$this
call_user_func_array(__FUNCTION__, func_get_args());