12
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

Why do I get parse error & and how to fix it? Thanks!

tereško
  • 58,060
  • 25
  • 98
  • 150
easyrider
  • 701
  • 3
  • 10
  • 20

2 Answers2

26

The parse error here:

echo "Watching ".static::$favSport;

is because late static bindings were introduced in PHP v5.3. Your php version (<5.3) doesn't recognize static::$favSport.

There isn't any way I can think of to fix it for PHP older than 5.3, other than with object inheritance (which isn't really a fix per se since it doesn't have anything to do with static)...

Ares
  • 5,905
  • 3
  • 35
  • 51
BoltClock
  • 700,868
  • 160
  • 1,392
  • 1,356
5

I had the same problem, but i used self in the place of static for my php version that's 5.2.1 well older than 5.3 http://php.net/manual/en/language.oop5.late-static-bindings.php