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

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

Linda Hamilton
发布: 2024-12-30 11:24:13
原创
688 人浏览过

Why Am I Getting the

“PHP 致命错误:不在对象上下文中使用 $this”已解决

遇到错误“致命错误:在不在对象上下文中使用 $this” not in object context”表示引用的 $this 关键字在类上下文之外使用。为了更好地理解这一点,让我们剖析您的代码:

在您的index.php中,您需要load.php文件,而该文件又需要class.php。在 class.php 中,由于构造函数中的 $this->foo 赋值而发生错误。

行 $this->foo = $foo;尝试访问当前对象的 foo 属性,但没有实例化对象,就没有 $this 可以引用。因此,该行在对象上下文之外无效。

要纠正错误,您必须实例化 foobar 类的对象并在该对象上调用其方法。这可以通过以下示例来实现:

  1. 静态方法调用:

    通过将 foobarfunc 方法声明为静态并定义静态变量 $foo 来修改您的 class.php 。这允许您直接调用该方法,而无需实例化对象。

  2. 对象调用:

    使用 $foobar = new foobar; 实例化 foobar 类的对象;然后使用 $foobar->foobarfunc(); 在该对象上调用其方法。

因此,当尝试在对象上下文之外使用 $this 时,会出现错误。要解决这个问题,可以使用没有 $this 引用的静态方法,或者实例化一个对象并调用它的方法。

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

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