PHP致命错误:不在对象上下文中时使用$ this
我有一个问题:
我正在编写没有框架的新WebApp。
在我的 我正在使用:require_once('load.php');
在 我require_once('class.php');
用来加载 。
在我的 出现此错误:
致命错误:不在类的类上下文中,在行上使用$ this …(在本示例中为11)
我的 class.php 的编写示例:
class foobar { public $foo;
public function __construct() {
global $foo;
$this->foo = $foo;
}
public function foobarfunc() {
return $this->foo();
}
public function foo() {
return $this->foo;
}
}
在我的 index.php中, 我正在加载的可能foobarfunc()
是这样的:
foobar::foobarfunc();
但也可以是
$foobar = new foobar;$foobar->foobarfunc();
为什么会出现错误?
回答:
在我的index.php中,我正在像这样加载foobarfunc():
foobar::foobarfunc(); // Wrong, it is not static method
但也可以是
$foobar = new foobar; // correct$foobar->foobarfunc();
您不能以这种方式调用方法,因为它不是静态方法。
foobar::foobarfunc();
您应该改用:
foobar->foobarfunc();
但是,如果您创建了一个静态方法,则类似于:
static $foo; // your top variable set as staticpublic static function foo() {
return self::$foo;
}
那么您可以使用以下代码:
foobar::foobarfunc();
以上是 PHP致命错误:不在对象上下文中时使用$ this 的全部内容, 来源链接: utcz.com/qa/397341.html