致命错误:访问未声明的静态属性:

时间:2014-09-24 18:59:52

标签: php oop

我写了两个类,第二个扩展了第一个类,当我尝试使用它时,我得到了这个错误:

致命错误:访问未声明的静态属性:

代码逻辑:

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

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

bar::fooFunc();

如何让它发挥作用?

1 个答案:

答案 0 :(得分:3)

self替换为static

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

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

bar::fooFunc();

<小时/> 此外,如果您忘记在子类中定义静态变量,那么向foo类添加“默认变量”是个好主意:

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

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