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 static

public static function foo() {

return self::$foo;

}

那么您可以使用以下代码:

foobar::foobarfunc();

以上是 PHP致命错误:不在对象上下文中时使用$ this 的全部内容, 来源链接: utcz.com/qa/397341.html

回到顶部