Heim >Backend-Entwicklung >PHP-Tutorial >&Anführungszeichen in PHP

&Anführungszeichen in PHP

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-08-18 09:16:06991Durchsuche

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

Antwortinhalt:

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.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn