首页 > 后端开发 > php教程 > 为什么我在 PHP 中收到'致命错误:不在对象上下文中时使用 $this”?

为什么我在 PHP 中收到'致命错误:不在对象上下文中时使用 $this”?

Barbara Streisand
发布: 2024-12-25 11:02:41
原创
198 人浏览过

Why Am I Getting the

在 PHP 类中使用 $this

尝试时出现 PHP 错误“致命错误:不在对象上下文中使用 $this”在需要对象的类方法之外访问 $this 关键字

说明

在 PHP 中,$this 关键字指的是类方法中的当前对象实例。尝试在对象上下文之外(例如在静态方法或全局作用域中)使用 $this 将导致上述错误。

示例

提供的代码演示错误是如何发生的。在class.php中,foobarfunc()方法错误地尝试访问$this->foo(),该方法仅在对象实例内有效。

解决方案

要解决该错误,您可以:

  • 将该方法创建为静态方法:

    static public function foobarfunc() {
      return self::$foo;
    }
    登录后复制

    这允许您使用类名而不是对象实例来访问该方法,例如 foobar::foobarfunc().

  • 创建一个对象实例并调用该实例的 foobarfunc() 方法实例:

    $foobar = new foobar;
    $result = $foobar->foobarfunc();
    登录后复制

记住,静态方法可以直接访问类变量和方法,而不需要对象实例,而非静态方法则需要先创建特定的对象实例.

以上是为什么我在 PHP 中收到'致命错误:不在对象上下文中时使用 $this”?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板