2011-01-12 4 views
11
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(); 

Parse error: syntax error, unexpected T_STATIC on line 7Анализировать ошибка: синтаксическая ошибка, неожиданный T_STATIC

Почему я получаю сообщение об ошибке синтаксического анализа & и как это исправить? Благодаря!

+0

что возвращение phpversion()? – powtac

ответ

26

Ошибка синтаксического анализа здесь:

echo "Watching ".static::$favSport; 

потому, что late static bindings были введены в PHP v5.3. Ваша версия php (< 5.3) не распознает static::$favSport.

Нет никакого способа, я могу придумать, чтобы исправить его для PHP старше 5.3, кроме как с наложением объекта (что на самом деле не является исправить как таковое, поскольку оно не имеет ничего общего с static) ...

+0

Ах, справедливая точка. +1 –

+0

@Pekka: PHP 4 задушит ключевое слово 'public' :) – BoltClock

+0

Хорошо спасибо - это правильно :) – easyrider

Смежные вопросы