致命错误:访问未申报的静态属性:

问题描述:

我写了其中第二扩展的第一个两班,当我尝试使用它,我得到这个错误:致命错误:访问未申报的静态属性:

致命错误:访问未申报的静态属性:

代码逻辑:

class foo 
{ 
    public static function fooFunc() 
    { 
     return self::$fooVar; 
    } 
} 

class bar extends foo 
{ 
    protected static $fooVar = 'Hello World'; 
} 

bar::fooFunc(); 

如何使它工作?

+0

在父类中声明'$ fooVar'作为公共静态变量。 – Ohgodwhy 2014-09-24 19:00:22

+0

富是一个父类,它应该怎么知道里面的酒吧? – 2014-09-24 19:02:08

static更换self

class foo 
{ 
    public static function fooFunc() 
    { 
     return static::$fooVar; 
    } 
} 

class bar extends foo 
{ 
    protected static $fooVar = 'Hello World'; 
} 

bar::fooFunc(); 


Futhermore增加一个“默认变量”的 foo类是在您忘记在子类中定义的静态变量是一个好主意:

class foo 
{ 
    protected static $fooVar = 'Default Text'; 

    public static function fooFunc() 
    { 
     return static::$fooVar; 
    } 
}