Heim >Backend-Entwicklung >PHP-Problem >Wird ein PHP-Array als Referenz übergeben?
Die PHP-Array-Übertragung erfolgt nicht per Referenz, sondern per Wert. Wenn Sie beim Aufrufen einer Funktion das PHP-Array als tatsächlichen Parameter dem formalen Parameter zuweisen und es in der Funktion ändern, hat dies keine Auswirkungen auf das Array selbst, was darauf hinweist, dass die Übertragung darin erfolgt Da der Prozess als Wert übergeben wird, ist die Array-Variable kein Verweis auf das Array selbst.
Die Betriebsumgebung dieses Artikels: Windows 10-System, PHP-Version 8.1, Dell G3-Computer
Die Array-Übergabe in PHP erfolgt nach Wert und nicht nach Referenz.
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:
$arr = array( 'name' => 'corn', 'age' => '24', ); test_arr($arr); function test_arr($arr){ $arr['name'] = 'qqyumidi'; } print_r($arr); //result: Array ( [name] => corn [age] => 24 )
Der js-Code lautet wie folgt:
var arr = new Array('corn', '24'); test_arr(arr); function test_arr(arr){ arr[0] = 'qqyumidi'; } 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 .
$aa = 100; test_vars($aa); function test_vars(&$aa){ $aa = 200; } print_r($aa); //result: 200
Empfohlenes Lernen: „PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWird ein PHP-Array als Referenz übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!