在 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中文网其他相关文章!