“PHP 致命错误:不在对象上下文中使用 $this”已解决
遇到错误“致命错误:在不在对象上下文中使用 $this” not in object context”表示引用的 $this 关键字在类上下文之外使用。为了更好地理解这一点,让我们剖析您的代码:
在您的index.php中,您需要load.php文件,而该文件又需要class.php。在 class.php 中,由于构造函数中的 $this->foo 赋值而发生错误。
行 $this->foo = $foo;尝试访问当前对象的 foo 属性,但没有实例化对象,就没有 $this 可以引用。因此,该行在对象上下文之外无效。
要纠正错误,您必须实例化 foobar 类的对象并在该对象上调用其方法。这可以通过以下示例来实现:
静态方法调用:
通过将 foobarfunc 方法声明为静态并定义静态变量 $foo 来修改您的 class.php 。这允许您直接调用该方法,而无需实例化对象。
对象调用:
使用 $foobar = new foobar; 实例化 foobar 类的对象;然后使用 $foobar->foobarfunc(); 在该对象上调用其方法。
因此,当尝试在对象上下文之外使用 $this 时,会出现错误。要解决这个问题,可以使用没有 $this 引用的静态方法,或者实例化一个对象并调用它的方法。
以上是为什么我会收到'PHP 致命错误:不在对象上下文中使用 $this”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!