Heim >Backend-Entwicklung >PHP-Tutorial >Detaillierte Erläuterung der Referenzübergabe und Rückgabe von Funktionen in PHP (mit Code)

Detaillierte Erläuterung der Referenzübergabe und Rückgabe von Funktionen in PHP (mit Code)

青灯夜游
青灯夜游nach vorne
2021-04-02 18:16:543329Durchsuche

In diesem Artikel erfahren Sie mehr über die Referenzen von PHP und stellen die Referenzübergabe und Referenzrückgabe von Funktionen im Detail vor. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.

Detaillierte Erläuterung der Referenzübergabe und Rückgabe von Funktionen in PHP (mit Code)

PHP-Referenz (also das Hinzufügen eines kaufmännischen Und-Zeichens vor einer Variablen, Funktion, einem Objekt usw.)

Referenz in PHP bedeutet: Verschiedene Namen greifen auf denselben Variableninhalt zu.
Es gibt einen Unterschied zu Zeigern in der C-Sprache. Der Zeiger in der Sprache C speichert den Inhalt der Variablen und die im Speicher gespeicherte Adresse.

1. Variablenreferenz

Mit der PHP-Referenz können Sie zwei Variablen verwenden, um auf denselben Inhalt zu verweisen ist eigentlich die Speicheradresse, an der sich der Variableninhalt von $b befindet. Durch Ändern des Werts von $a in der Funktion kann der Wert von $b geändert werden

Hinweis:

Im obigen „test($ b); " Fügen Sie nicht das &-Symbol vor $b hinzu, sondern in der Funktion „call_user_func_array“, wenn Sie Parameter als Referenz übergeben möchten, benötigen Sie das &-Symbol

<?php
    $a = &#39;abc&#39;;
    $b = &$a;
    var_dump($a,$b);//均为&#39;abc&#39;
    $b = 123;
    var_dump($a,$b);//均为123

3. Die Referenz der Funktion gibt

<?php
    function test(&$a){
        $a = $a + 100;
    }
    $b = 1;
    test($b);
    var_dump($b);//101
Auf diese Weise erhält $a= test(); tatsächlich keine Funktionsreferenz zurück, was sich nicht von einem gewöhnlichen Funktionsaufruf unterscheidet. Durch den Aufruf einer Funktion in der Methode $a=test() wird der Wert der Funktion nur $a zugewiesen, und alle Änderungen an $a wirken sich nicht auf $b in der Funktion aus. Wie wäre es mit dem Aufruf der Funktion in der Methode $a=&test(? )-Methode? Ihre Funktion besteht darin, die Speicheradresse der $b-Variablen in $b auf die gleiche Stelle wie die Speicheradresse der $a-Variablen zu verweisen.

Statische Variablen werden hier verwendet, um jedem die Referenzrückgabe der Funktion verständlich zu machen. Tatsächlich wird die Referenzrückgabe der Funktion hauptsächlich in Objekten verwendet:

<?php
    function test(&$a){
        $a = $a + 10;
    }
    $b = 1;
    call_user_func_array(&#39;test&#39;,array(&$b));
    var_dump($b);//11
Empfohlenes Lernen: „

PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Referenzübergabe und Rückgabe von Funktionen in PHP (mit Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen