Php 如何将数组传递给方法?
这是我目前的代码:Php 如何将数组传递给方法?,php,arrays,function,oop,parameter-passing,Php,Arrays,Function,Oop,Parameter Passing,这是我目前的代码: public function myfunc( $class_name, $method_name, array $params = [] ) { $obj = new $class_name(); if ($obj->$method_name()['status']) { // do stuff } } 我当前的代码也可以工作。现在我需要将$params数组传递给$method\u name()方法。所以我使用了call\u
public function myfunc( $class_name, $method_name, array $params = [] ) {
$obj = new $class_name();
if ($obj->$method_name()['status']) {
// do stuff
}
}
我当前的代码也可以工作。现在我需要将$params
数组传递给$method\u name()
方法。所以我使用了call\u user\u func\u数组
PHP函数。这是我的新代码:
public function myfunc( $class_name, $method_name, array $params = [] ) {
$obj = new $class_name();
if (call_user_func_array($obj->$method_name()['status'], $params)) {
// do stuff
}
}
但在这个版本中,它抛出了以下错误:
call\u user\u func\u array()要求参数1为有效回调,不提供数组或字符串
您能告诉我如何修复它吗?call\u user\u func\u array()
调用回调函数(数组,函数字符串名称),其中参数列表作为数组给出。你能行
call_user_func(array($obj, $method_name), $params)['status']
表达式
array($instance,$methodname)
是php中回调的表示形式,即方法$instance->$methodname
在这段代码中,您必须创建$params数组并初始化它,然后在函数调用中作为参数传递。见以下代码:
$params = array();
$params[0]=anyVal;
$params[1]=anyVal;
$params[n]=anyVal;
if (call_user_func_array($obj->$method_name()['status'], $params))
{
// do stuff
}
不行。。它抛出对未定义函数方法的调用\u name()