phpbar.de logo

Mailinglisten-Archive

[php] Zugriff in Methode von Parentklasse auf Property vonChildklasse funktioniert nicht

[php] Zugriff in Methode von Parentklasse auf Property vonChildklasse funktioniert nicht

Yannik Hampe yannik at cipher-code.de
Sam Dez 13 21:50:04 CET 2008



Jan Piotrowski wrote:
> Hallo Hans,
> 
> addItem() ruft $raum = getRaum($item); auf, was anhand des Itemtyps
> den Variabelnnamen der Property zurückliefert. Das nutzt additem()
> dann um per $this->$raum auf den Raum zuzugreifen.
> 
> Ist das in deinem Code ein Tippfehler und sollte eigentlich
> $this->warenkorb[...] heissen? Das wäre dann ja ein mehrdimensionales
> Array in der Parentklasse und das Zugriffsproblem für die Räume damit
> elegant umschifft - richtig verstanden?

Ja, aber es handelt sich um eine potentielle neue Quelle unerwünschter
Features. Zum Beispiel schafft es ggf. die Möglichkeit in einem Korb,
der garkeine Tiefkuehlkost aufnehmen soll, dass dieser die Ware trotzdem
schluckt.
Die erstere Methode ist allerdings auch nicht notwenigerweise besser.
Vorallem aus stylistischen Gründen. Denn einem Programmierer, der deinen
Quelltext liest ist nicht unbedingt klar, was getRaum() zurück liefert.
Zunächstmal könnte da sonstwas drin stehen und $this->$raum könnte jede
beliebige Eigenschaft deines Objekts überschreiben und im schlimmsten
Fall sogar ein Sicherheitsproblem darstellen...

> 
> - Jan

Yannik

php::bar PHP Wiki   -   Listenarchive