phpbar.de logo

Mailinglisten-Archive

[php] OOP

[php] OOP

Christoph Rust info at webmaster-rust.de
Don Sep 30 15:16:57 CEST 2004


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