In manchen Frameworks sieht man bei Funktionen manchmal Variablen vom Typ &$arr. Ich habe nur herausgefunden, dass es sich hierbei um eine Referenz handelt sind die Nachteile dieser Verwendung
In manchen Frameworks sieht man bei Funktionen manchmal Variablen vom Typ &$arr. Ich habe nur herausgefunden, dass es sich hierbei um eine Referenz handelt sind die Nachteile dieser Verwendung
Wenn beispielsweise der ursprüngliche Wert geändert werden muss, habe ich eine Funktion, die mehrere Werte ausgeben muss,
Der Fragesteller sollte wissen, dass PHP nur einen Wert zurückgeben kann, natürlich können Sie Array-Paketierung verwenden
<code><?php function test(&$a,&$b){ $a = 1; $b = 1; } test($a,$b); echo $a,"@",$b;</code>
Sie können die Ausgabe sehen
<code>1@1</code>
Eine andere Situation besteht darin, dass bei Verwendung eines großen Arrays eine Speicherkopie weggelassen werden kann, um Speicheraufwand zu sparen
<code class="php">$a = "china"; $b = &$a;</code>
Auf diese Weise muss PHP nur eine Kopie der Daten speichern. Daher müssen beim Programmieren große Variablen im Allgemeinen als Referenz übergeben werden, um Speicherressourcen zu sparen. Bei PHP-Funktionsparameteraufrufen werden Objekte standardmäßig als Referenz übergeben.
Was Sie fragen möchten, ist
<code>function (&$arr) {} </code>
Ist dies die Art und Weise, wie man es verwendet?
Dieses Ding wird verwendet, um die Variable $arr selbst zu ändern. Da es sich bei der Funktion um einen geschlossenen Raum handelt, ändern sich die Variablen außerhalb nicht, wenn Sie $arr in der Funktion ändern. Sie können dies verwenden, wenn Sie return
nicht verwenden möchten, um die geänderte Variable zurückzugeben.
Zum Beispiel bool asort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
Mit dieser Funktion können Sie sehen, dass der Rückgabewert vom Typ Bool ist, aber auch ein geändertes Array zurückgeben kann.
Dies geschieht durch die Verwendung des &-Referenzsymbols.
Weil der von einem Array übergebene Standardwert völlig anders ist als der eines Objekts. Durch die Übergabe eines Werts wird eine Kopie erstellt, und im Gegensatz zu Dingen wie Ganzzahlen und Gleitkommazahlen haben Arrays viel Inhalt und der durch das Kopieren verursachte Overhead ist hoch, sodass im Allgemeinen die Übergabe eines Werts erzwungen wird.
-Tag zu extrahieren.