dedlfix: Referenzen in PHP

Beitrag lesen

echo $begrüßung;

Also, in letzter Zeit ist es mir in den Sinn geraten, mit dem blinden Gebrauch der Werteparameter Schluss zu machen, da es ja logischerweise performance-sparender sein muss, im Speicher ausschließlich zu referenzieren, anstatt ihn weitläufig zu belegen.

Du hast dir das Handbuch-Kapitel zu Referenzen durchgelesen? Wenn ja, solltest du wissen, dass man unter PHP Referenzen nur dann verwenden soll, wenn sie _nötig_ sind. Ansonsten ist PHP intern so clever, die Variablenwerte erst dann zu duplizieren, wenn sich der Inhalt ändert. Unter See also in der Beschreibung zu debug_zval_dmp() findest du auch eine genaue Erklärung, wie PHP intern mit den Variablen hantiert.

Außerdem werden Objekte unter PHP5 bereits ohne weiteres Zutun per Referenz übergeben. Hier muss man explizit clonen, wenn man eine Kopie benötigt.

Einmal sei als Beispiel eine Klasse A mit der Eigenschaft B gegeben. Der Konstruktor hat einen Variblenparameter C. Ich will verursachen, dass die Eigenschaft B auf die Speicheraddresse referenziert, auf die auch der Parameter c referenziert. Mit welchem Operator geschieht dies?

Sollte es sich bei C um einen skalaren Wert oder ein Array handeln, dann musst du ihn sowohl per Referenz übernehmen als auch per Referenz zuweisen (=&). Ansonsten übernimmst du nur eine Kopie oder/und legst nur eine Kopie in B ab.

echo "$verabschiedung $name";