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.
Nun ist der Parser von PHP wohl sehr tolerant und ich weiß gar nicht genau, wie ich syntaktisch vorzugehen habe...
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?
class A
{
private B;function __construct (&$C)
{
$this->B = &$C; // welcher dieser beiden Aufrufe ist denn korrekt!?
$this->C = $C; // Parsen lassen sich beide!
}
}
Stimmt: parsen lassen sich beide.
Aber: eine davon ist deprecated, also missbilligt.
Man sollte also nur so vorgehen:
function EineFunktion(&$einParameter) {
}
$derParameter = 123;
$eineVariable = EineFunktion($derParameter);
also das "&" im Funktionsheader notieren,
dann wird die Variable immer byreference übergeben.
Das "&" beim Aufruf der Funktion vor dem Parameter zu notieren ist "alte" Schreibweise... und wird soviel ich weiß von PHP (zumindest V5 im Strict Mode) als Warning (oder als Notice?) bemängelt...