尝试从侧面静态方法中的一个方法获取一些数据(在其他类中使用它),但是当不在...中的对象上下文中时,我得到了“使用$”。错误。
下面是一个基本的例子
class mClass{
public $someVar = 'Hello world...';
public function passFunc(){
$give = $this->someVar;
return $give;
}
public static function showFunc(){
$show = self::passFunc();
return $show;
}
}
mClass::showFunc();// show error: Using $this when not in object context in...
答案 0 :(得分:2)
使用静态变量时,不能使用$ this。 $ this是指向当前对象的指针,但静态变量属于class。
答案 1 :(得分:0)
类方法(或静态函数)并不与您班级的特定实例相关联,即尽管$this
可用,但它没有self
。
类方法可以访问静态属性或方法,但访问类中的任何其他内容都会引发错误。最好将静态方法看作是组织函数的一种方法;因此,它们在外部函数和实例方法之间操作。
在您的情况下,您必须在静态方法中创建一个实例:
public static function showFunc()
{
$o = new self;
$show = $o->passFunc();
return $show;
}