在:php错误中不在对象上下文中使用$this

在:php错误中不在对象上下文中使用$this,php,class,this,Php,Class,This,我已经解决了这个问题,我只需要知道该怎么办。我得到上面的错误是因为我刚刚意识到类是作为class::function($values)而不是class->function($values)运行的 是否有人知道如何将此函数转换为实例化类,然后使用值运行该函数 private function _load($values=null) { define('LOADED_CONTROLLER', $this->controller); define('LOADED_FUNCTIO

我已经解决了这个问题,我只需要知道该怎么办。我得到上面的错误是因为我刚刚意识到类是作为class::function($values)而不是class->function($values)运行的

是否有人知道如何将此函数转换为实例化类,然后使用值运行该函数

private function _load($values=null) {

    define('LOADED_CONTROLLER', $this->controller);
    define('LOADED_FUNCTION', $this->function);

    $function = $this->function;

    $controller = new $this->controller;
    ($values == null) ? $controller->$function() : call_user_func_array(array($this->controller, $function), $values);
}

您已经实例化了该类:

$controller = new $this->controller;
只需在
调用用户功能数组中使用
$controller

($values == null) ? $controller->$function() : call_user_func_array(array($controller, $function), $values);

在代码中,如果
$value!=空
。如果在此方法中使用
$this
,当然会导致错误。

您已经实例化了该类:

$controller = new $this->controller;
只需在
调用用户功能数组中使用
$controller

($values == null) ? $controller->$function() : call_user_func_array(array($controller, $function), $values);

在代码中,如果
$value!=空
。如果你在这个方法中使用
$this
,那当然会导致错误。

你到底在问什么?你说你知道问题出在哪里,那你为什么还要用
$this
?您不能在静态上下文中使用
$this
。您到底在问什么?你说你知道问题出在哪里,那你为什么还要用
$this
?您不能在静态上下文中使用
$this
。抱歉,我不明白。因为我不知道使用call\u user\u func\u数组的参数数量。但是,当我这样做时,我不能在控制器函数中使用$this。还有其他功能吗?@JasonS:当然可以。但是当前您正在将类
数组($this->controller,$function)
而不是对象
数组($controller,$function)
传递给函数。这就是你的错误所在。啊,当然,我不知道发生了什么变化。非常感谢!对不起,我不明白。因为我不知道使用call\u user\u func\u数组的参数数量。但是,当我这样做时,我不能在控制器函数中使用$this。还有其他功能吗?@JasonS:当然可以。但是当前您正在将类
数组($this->controller,$function)
而不是对象
数组($controller,$function)
传递给函数。这就是你的错误所在。啊,当然,我不知道发生了什么变化。非常感谢!