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