我正在阅读call_user_func_array-函数。
当你要打电话给一个函数时,让我们说foobar(),对于参数,你会这样:
call_user_func_array("foobar", array("one", "two"));
但是当你要打电话给某个方法时,让我们说$ foo-> bar,对于参数,你会这样:
call_user_func_array(array($foo, "bar"), array("three", "four"));
正如你所看到的,这里的第一个参数是一个数组,带有类的名称,然后是方法的名称。
我的问题是,当你想调用方法时,为什么要像数组一样发送它?
答案 0 :(得分:1)
因为要调用方法,您还必须指定调用该方法的对象。如果您正常调用它,那将是:
$foo->bar("three", "four");
使用call_user_func_array
时,您需要同时指定$foo
和bar
。将它们放在数组中是指示这是一个方法调用而不是普通的函数调用。