Mailinglisten-Archive |
Morgen! I'm sorry, da hab ich mich echt verschrieben. Es muss natürlich so aussehen: <code> class foo { protected $var = "value of var"; protected static function method(){ return "value of method"; } } class bar extends foo { public static function getVar(){ return parent::$var; } public static function callMethod(){ return parent:method(); } } echo bar::getVar(); echo bar::callMethod(); } </code> Einen Sinn hat das ganze schon, hier ein Beispiel: Ich habe die Klasse Settings, dazu gehören als "Kind"-Klassen SettingsReader und SettingsWriter. Wenn also in der Klasse Settings eine Variable abgefragt wird, dann ruft die Klasse Settings eine Methode namens readSettings in der Klasse SettingsReader auf (falls das noch nicht zuvor gesehen ist). Analog dazu, wird bei Änderungen die Klasse SettingsWriter mit der Methode writeData aufgerufen. Beide Methoden (read/write-Data) setzen, bzw. holen sich, den Wert in eine Variable Data in der Elternklasse. Die Klasse Settings dient also eigentlich nur als Schnittstelle für alle anderen Klassen in der Application. Alles ist Static, da der Zugriff z.B. auf die Methoden der Klasse Settings ja von überall erfolgen kann und somit nicht jedes mal einen neue Instanz angelegt werden muss. Also Sinn ergibt das schon denke ich, mir kommt es halt nur spanisch vor, warum das Schlüsselwort protected bei Methoden, nicht aber bei Variablen funktioniert, ist doch eigentlich vom Zugriff her das gleiche...
php::bar PHP Wiki - Listenarchive