Php ZF2:致命错误:在linux平台中不在对象上下文中使用$this

Php ZF2:致命错误:在linux平台中不在对象上下文中使用$this,php,linux,oop,model-view-controller,zend-framework2,Php,Linux,Oop,Model View Controller,Zend Framework2,我试图调用函数,但出现以下错误: 致命错误:不在/home/content/34/8007634/html/independent platform/module/Application/module.php中的对象上下文中使用$this 误差线 代码 在此上下文中,这意味着方法onBootstrap被静态调用,即作为Module::onBootstrap($e) 请确保不会发生这种情况,或者相应地更改方法(它们无论如何都不会对实例进行操作): 将它们声明为静态: public static f

我试图调用函数,但出现以下错误:

致命错误:不在/home/content/34/8007634/html/independent platform/module/Application/module.php中的对象上下文中使用$this

误差线 代码
在此上下文中,这意味着方法
onBootstrap
被静态调用,即作为
Module::onBootstrap($e)

请确保不会发生这种情况,或者相应地更改方法(它们无论如何都不会对实例进行操作):

  • 将它们声明为静态:

    public static function onBootstrap(MvcEvent $e)
    
    public function getWithoutLoginAllowedActionList()
    
  • 将类内的方法调用更改为使用
    self
    而不是
    $this

        $without_login_allowed_action = self::getWithoutLoginAllowedActionList();
    

  • 在此上下文中,这意味着方法
    onBootstrap
    被静态调用,即作为
    Module::onBootstrap($e)

    请确保不会发生这种情况,或者相应地更改方法(它们无论如何都不会对实例进行操作):

  • 将它们声明为静态:

    public static function onBootstrap(MvcEvent $e)
    
    public function getWithoutLoginAllowedActionList()
    
  • 将类内的方法调用更改为使用
    self
    而不是
    $this

        $without_login_allowed_action = self::getWithoutLoginAllowedActionList();
    

  • 答案是错误的。您在类定义之外使用了
    $this
    。嘿,谢谢您的回复。但我没有在类外定义函数。你能检查一下上面的代码吗..你确定引起错误的那一行没有包装在匿名函数中吗?查看您发布的代码,您显然已经对其进行了大量编辑,以删除不必要的/i相关行,这样做不清楚该调用的上下文。也许您正在附加一个侦听器,而错误的方法调用在包含侦听器逻辑的匿名函数中?缩进告诉我这里正在发生类似的事情,这就是为什么人们很难找到解决方案。在问题调用前后添加代码行,可能会有所帮助。答案在错误中。您在类定义之外使用了
    $this
    。嘿,谢谢您的回复。但我没有在类外定义函数。你能检查一下上面的代码吗..你确定引起错误的那一行没有包装在匿名函数中吗?查看您发布的代码,您显然已经对其进行了大量编辑,以删除不必要的/i相关行,这样做不清楚该调用的上下文。也许您正在附加一个侦听器,而错误的方法调用在包含侦听器逻辑的匿名函数中?缩进告诉我这里正在发生类似的事情,这就是为什么人们很难找到解决方案。在问题调用前后添加代码行,可能会有所帮助。您好,谢谢。我已根据您的评论更改了代码,但现在给我以下错误…………致命错误:未捕获异常“Zend\Stdlib\exception\InvalidCallbackException”,并显示消息“提供了无效回调;“不可调用”,因此该方法在其他地方被非静态调用。我不太了解ZF2模块管理员,所以无法告诉您,我在哪里,为什么,谢谢。我已根据您的评论更改了代码,但现在给我以下错误…………致命错误:未捕获异常“Zend\Stdlib\exception\InvalidCallbackException”,并显示消息“提供了无效回调;“不可调用”,因此该方法在其他地方被非静态调用。我不太了解ZF2模块管理员,无法告诉您,在哪里以及为什么