call_user_func_array关于类中的方法

时间:2015-03-12 13:49:48

标签: php

我正在阅读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"));

正如你所看到的,这里的第一个参数是一个数组,带有类的名称,然后是方法的名称。

我的问题是,当你想调用方法时,为什么要像数组一样发送它?

1 个答案:

答案 0 :(得分:1)

因为要调用方法,您还必须指定调用该方法的对象。如果您正常调用它,那将是:

$foo->bar("three", "four");

使用call_user_func_array时,您需要同时指定$foobar。将它们放在数组中是指示这是一个方法调用而不是普通的函数调用。