Mailinglisten-Archive |
Hi Liste! Mal wieder ne Frage zu PHP5 und OOP. Wenn man eine Variable oder Methode mit "protected" deklariert, kann man doch nur darauf zugreifen, wenn der Zugriff innerhalb der eigenen Klasse passiert, oder wenn die Klasse die darauf zugreifen will, von der Haupt-/Elternklasse abgeleitet ist. Beispiel: <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 callMeethod(){ return parent:method(); } } echo foo::getVar(); echo foo::callMethod(); } </code> Bei diesem Beispiel bekomme ich beim Methodenaufruf ("echo foo::callMethod()") wie gewünscht den Wert "value of method" zurück, der dann ausgegeben wird. Wenn ich aber die Methode "foo::getVar()" aufrufe, bekomme ich einen Laufzeitfehler, mit: *Fatal error*: Cannot access private property foo::$var in ... Wie kann das sein, dass es bei der Methode funktioniert und bei der Variablen nicht? Ist das irgendwie ein Bug? M.f.G.
php::bar PHP Wiki - Listenarchive