PHP调用';未知';带参数的方法

PHP调用';未知';带参数的方法,php,Php,我正在尝试用php构建路由脚本 它目前正在工作,但现在我想添加参数,这就是我卡住的地方 代码im当前正在使用: $controllerName是类的名称。 $action是要调用的方法的名称 $controllerClass = new $controllername(); $controllerClass->$action(); 我希望解析到方法中的参数位于数组中 我的问题是,在调用的方法中,引用对象内部的(公共)变量,因此如果我使用: call_user_func_array()

我正在尝试用php构建路由脚本

它目前正在工作,但现在我想添加参数,这就是我卡住的地方

代码im当前正在使用:

$controllerName是类的名称。 $action是要调用的方法的名称

$controllerClass = new $controllername();
$controllerClass->$action();
我希望解析到方法中的参数位于数组中

我的问题是,在调用的方法中,引用对象内部的(公共)变量,因此如果我使用:

call_user_func_array()
im收到错误:
在不在对象上下文中时使用$this

有人想出了解决这个问题的好办法吗


编辑:发现了我的问题,当我使用call_user_func_array()时,我将类名作为参数而不是对象。这就是为什么它不是在对象模式下,而是在静态模式下。

您使用的是
$this
在类定义之外的某个地方
$this
只能在类中使用。

如何在代码中调用call_user_func_array()?@AbhikChakraborty call_user_func_array(array($classname,$action),$methodparams);但那当然应该是类的实例,而不是类名。。。。thxare你确定$action返回一个字符串作为方法_name,并且在类中定义了相同的名称吗?是的,但我修复了调用_user_func_array()中的错误我给出了类的名称而不是类的对象,这就是为什么它在静态上下文中而不是在对象上下文中。我修复了调用_user_func_array()中的错误我给出了类的名称而不是类的对象,所以它是在静态上下文中而不是在对象中context@user1971401如果仍然存在问题,请发布更新的代码并修复。