Heim  >  Artikel  >  Backend-Entwicklung  >  Wird das PHP-Array als Wert oder Referenz übergeben?

Wird das PHP-Array als Wert oder Referenz übergeben?

青灯夜游
青灯夜游Original
2023-01-07 17:23:193301Durchsuche

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.

Wird das PHP-Array als Wert oder Referenz übergeben?

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(
    'name' => 'corn',
    'age' => '24',
);
var_dump($arr);
test_arr($arr);
function test_arr($arr){
    $arr['name'] = 'qqyumidi';
}
var_dump($arr); 
?>

Wird das PHP-Array als Wert oder Referenz übergeben?

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('corn', '24');
test_arr(arr);
function test_arr(arr){
    arr[0] = 'qqyumidi';
}
console.log(arr);  //result:["qqyumidi", "24"]

Wird das PHP-Array als Wert oder Referenz übergeben?

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
?>

Wird das PHP-Array als Wert oder Referenz übergeben?

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!

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