2011-01-12 13 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 7Parse error: Syntaxfehler, unerwartete T_STATIC

Warum erhalte ich Parse error & und wie man es beheben? Vielen Dank!

+0

Was ist die Rückkehr von phpversion()? – powtac

Antwort

26

Der Parse-Fehler hier:

echo "Watching ".static::$favSport; 

ist, weil late static bindings in PHP v5.3 eingeführt wurden. Ihre PHP-Version (< 5.3) erkennt static::$favSport nicht.

Es gibt keine Möglichkeit, es für PHP älter als 5.3 zu beheben, anders als mit Objektvererbung (die nicht wirklich eine Fix per se ist, da es nichts damit zu tun hat static) ...

+0

Ah, guter Punkt. +1 –

+0

@Pekka: PHP 4 würde auf das 'public' Schlüsselwort ersticken :) – BoltClock

+0

Ok danke - das stimmt :) – easyrider

Verwandte Themen