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