解析错误:语法错误,意外T_STATIC

eas*_*der 11 php

class Employee 
{
    public static $favSport = "Football";

    public static function watchTV()
    {
        echo "Watching ".static::$favSport;
    }
}

class Executive extends Employee 
{
    public static $favSport = "Polo";
}

echo Executive::watchTV();
Run Code Online (Sandbox Code Playgroud)

解析错误:语法错误,第7行意外T_STATIC

为什么我会得到解析错误以及如何修复它?谢谢!

Bol*_*ock 26

这里解析错误:

echo "Watching ".static::$favSport;
Run Code Online (Sandbox Code Playgroud)

是因为在PHP v5.3中引入了后期静态绑定.您的PHP版本(<5.3)无法识别static::$favSport.

除了使用对象继承之外,没有任何办法可以让我想到为5.3以上的PHP修复它(这本身并不是真正的修复,因为它没有任何关系static)...


小智 5

我遇到了同样的问题,但是我使用 self 代替了我的 php 版本的 static ,该版本的 5.2.1 远早于 5.3 http://php.net/manual/en/language.oop5.late-static-bindings.php