Heim >Backend-Entwicklung >PHP-Problem >Wird das PHP-Array als Wert oder Referenz übergeben?
PHP-Arrays werden als Wert übergeben. Die PHP-Array-Übertragung ist eine Wertübertragung. Wenn Sie eine Funktion aufrufen, hat die Zuweisung des PHP-Arrays als tatsächlicher Parameter zum formalen Parameter und seine Änderung in der Funktion keine Auswirkungen auf das Array selbst, was darauf hinweist, dass es sich bei der Übertragung in diesem Prozess um eine Wertübertragung handelt Array-Variable zeigt nicht auf einen Verweis auf dieses Array selbst.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP 8-Version, DELL G3-Computer
PHP-Arrays werden als Wert übergeben
Array-Übergabe in PHP ist eine Wertübergabe und keine Referenzübergabe .
Weisen Sie beim Aufruf einer Funktion das PHP-Array als tatsächlichen Parameter dem formalen Parameter zu. Eine Änderung in der Funktion hat keine Auswirkungen auf das Array selbst.
Erklären Sie, dass die Übertragung in diesem Prozess nach Wert erfolgt. Die Array-Variable ist keine Referenz auf das Array selbst. Das PHP-Array selbst existiert in Form eines Werts und der formale Parameter ist eine Kopie des Arrays.
Dies unterscheidet sich stark von einigen anderen Sprachen (wie C, Js usw.) und ist daher erwähnenswert!
Das Beispiel lautet wie folgt:
<?php header("Content-type:text/html;charset=utf-8"); $arr = array( &#39;name&#39; => &#39;corn&#39;, &#39;age&#39; => &#39;24&#39;, ); var_dump($arr); test_arr($arr); function test_arr($arr){ $arr[&#39;name&#39;] = &#39;qqyumidi&#39;; } var_dump($arr); ?>
Sie können sehen, dass selbst eine Neuzuweisung des Werts keine Auswirkungen auf das ursprüngliche Array selbst hat. Der
js-Code lautet wie folgt:
var arr = new Array(&#39;corn&#39;, &#39;24&#39;); test_arr(arr); function test_arr(arr){ arr[0] = &#39;qqyumidi&#39;; } console.log(arr); //result:["qqyumidi", "24"]
Wenn Sie den Referenzübertragungseffekt für die Wertübertragung in PHP verwenden müssen, können Sie das Adresszeichen &
vor dem formalen Parameter hinzufügen.
<?php header("Content-type:text/html;charset=utf-8"); $aa = 100; echo "原变量值:".$aa; test_vars($aa); function test_vars(&$aa){ $aa = 200; } echo "<br>修好后:".$aa; //result: 200 ?>
Erläuterung:
In PHP sind die meisten Variablentypen wie Zeichenfolgen, Ganzzahlen, Gleitkommazahlen, Arrays usw. Werttypen, während Klassen und Objekte Referenztypen sind, für die Sie bezahlen müssen darauf aufmerksam machen.
Empfohlenes Lernen: „PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWird das PHP-Array als Wert oder Referenz übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!