Ошибка анализа: синтаксическая ошибка, неожиданный T_STATIC
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();
Ошибка анализа: синтаксическая ошибка, неожиданный T_STATIC в строке 7
Почему я могу получить ошибку синтаксического анализа и как ее исправить? Спасибо!
Ответы
Ответ 1
Ошибка синтаксического анализа здесь:
echo "Watching ".static::$favSport;
заключается в том, что поздние статические привязки были представлены в PHP v5.3. Ваша версия php (< 5.3) не распознает static::$favSport
.
Нет никакого способа, как я могу придумать, чтобы исправить его для PHP старше 5.3, кроме как с наследованием объекта (что на самом деле не является исправлением, поскольку оно не имеет ничего общего с static
)...
Ответ 2
У меня была та же проблема, но я использовал себя вместо статического для моей версии php, что 5.2.1
хорошо старше 5.3 http://php.net/manual/en/language.oop5.late-static-bindings.php