&Von &$thisüberall entfernen , es wird nicht benötigt. Tatsächlich denke ich, dass Sie &diesen Code überall entfernen können - er wird überhaupt nicht benötigt.
Lange Erklärung
PHP ermöglicht die Übergabe von Variablen auf zwei Arten: "nach Wert" und "nach Referenz". Erster Weg ("nach Wert"), Sie können sie nicht ändern, anderer zweiter Weg ("nach Referenz") können Sie:
function not_modified($x) { $x = $x+1; }
function modified(&$x) { $x = $x+1; }
Beachten Sie das &Schild. Wenn ich modifiedeine Variable aufrufe, wird sie geändert, wenn ich sie aufrufe not_modified, nachdem sie zurückgegeben wurde, ist der Wert des Arguments der gleiche.
Ältere Versionen von PHP können das Verhalten von modifiedmit simulieren, not_modifiedindem Sie Folgendes tun : not_modified(&$x). Dies ist "Anrufzeit als Referenz". Es ist veraltet und sollte niemals verwendet werden.
Wenn Sie in sehr alten PHP-Versionen (lesen Sie: PHP 4 und früher) Objekte ändern, sollten Sie diese als Referenz übergeben, also die Verwendung von &$this. Dies ist weder notwendig noch empfehlenswert, da Objekte immer geändert werden, wenn sie an function übergeben werden, dh dies funktioniert:
function obj_modified($obj) { $obj->x = $obj->x+1; }
Dies würde sich ändern $obj->x, obwohl es formal "nach Wert" übergeben wird, aber was übergeben wird, ist das Objekthandle (wie in Java usw.) und nicht die Kopie des Objekts, wie es in PHP 4 war.
Dies bedeutet, dass Sie, es sei denn, Sie tun etwas Seltsames, fast nie ein Objekt übergeben müssen (und somit als $thisReferenz, sei es zur Anrufzeit oder auf andere Weise). Insbesondere benötigt Ihr Code es nicht.