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