[PHP] Return einer Referenz auf eine Eigenschaft/Variable
Dieses kleine Beispiel zeigt, wie man eine Referenz auf eine Variable/Eigenschaft über eine Funktion zurück geben kann. Wichtig ist dabei das "&" vor dem Namen der Methode get().
class classfoo {
private $var = "asdf";
function &get() { return $this->var; }
function mkecho() { var_dump($this->var); }
}
Im return von get() wird die Referenz auf die private Eigenschaft $var zurück gegeben. Wenn man also diesen Wert außerhalb der Klasse ändert, ist er auch innerhalb der Klasse geändert.
Man greift also von zwei verschiedenen Stellen auf den selben Speicher zu. Hier wird auch nicht auf private oder public geachtet. Das funktioniert immer.
Detaillierteres Beispiel: http://snippets.sim4000.de/show/17/
Verwandte Beiträge
- Datenbankloses Galerie Script [1. Update] (PHP, Programmieren)
- PHP5, Debian Squeeze und $_ENV (PHP, Programmieren)
- ASCII Tabelle mit PHP generieren (PHP, Programmieren)
- Globaler Datenspeicher (PHP, Programmieren)
- Dockstar Keylistener (PHP, Programmieren)







Das da oben ist ja nur ein Beispiel.
Gehört meines erachtens (und ich bin mir sicher, dass mir da ein Großteil der Programmierer zustimmen, die wissen, was sauberes Design ist) zu schlechtem Programmierstil.
Wo bleibt da Information Hiding? Eine Referenz auf eine Variable zurückgeben ist ja ok - aber auf eine (private) Datenkomponente? *hilfe*