PHP函数-使用相同(变量数)参数调用self
我有一个PHP函数,可以接受数量可变的参数(我使用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 =
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());