Beim Aufruf per Referenz geht es darum, die Referenz der Variablen als Funktionsparameter zu übergeben. Da PHP den Zeigermechanismus nicht direkt unterstützt, unterstützt es eine Referenz zur Abwicklung verschiedener Operationen. In der PHP-Sprache wird der tatsächliche Wert dieser Haltevariablen geändert, wenn der Wert innerhalb einer Funktion geändert wird. Dies kann im Call-by-Value nicht erreicht werden. Das kaufmännische Und-Symbol (&) kann als Präfix verwendet werden, während eine Variable als Referenz im Aufruf „be a reference“ übergeben wird. Das &-Symbol selbst stellt dar, dass eine Variable als Referenz verwendet wird. Eine Referenzfunktion kann auch als Parameter an eine andere Funktion übergeben werden. In diesem Thema lernen wir PHP Call by Reference kennen.
WERBUNG Beliebter Kurs in dieser Kategorie PHP-ENTWICKLER - Spezialisierung | 8-Kurs-Reihe | 3 ProbetestsStarten Sie Ihren kostenlosen Softwareentwicklungskurs
Webentwicklung, Programmiersprachen, Softwaretests und andere
Es gibt keine spezielle Syntax für die Verwendung, aber ja, das &-Zeichen muss verwendet werden, während ein Parameter an die Funktion übergeben wird.
Funktionsdeklaration könnte wie folgt aussehen:
function callByref(&$var) { $var.= 'inside the Call By Reference function.'; }
Beim Aufruf dieser Funktion ist keine besondere Aktion erforderlich. Dasselbe kann wie eine normale Funktion (Call-by-Value) verwendet werden.
$var = 'Yes, I am'; callByref ($var);
Bevor wir mit der Arbeit des Call-by-Reference fortfahren, sollten Anforderungen vorhanden sein, damit diese an eine Funktion angepasst werden können. Dann können wir in der Deklaration dieser angegebenen Funktion das Referenzzeichen auf eine Parametervariable verwenden. Lassen Sie uns das Gleiche anhand eines kurzen Beispiels verstehen.
function callByref(&$var) { $var.= 'Call By Reference function.'; } $var = 'Try to check the reference, I am inside the ';
Wenn wir versuchen, die $var hier zu drucken, wird die obige Meldung angezeigt
echo $var; // printing variable before calling function
Wenn Sie die Funktion jetzt aufrufen, ändert der Aufruf dieser Funktion den tatsächlichen Wert der Variablen
$var wie in der Funktion geschrieben.
callByref ($var); echo $var; // this will be print the combined value of the string.
In der unten genannten PHP-Sprache kann Folgendes als Call-by-Reference verwendet werden:
Verschiedene Beispiele sind unten aufgeführt:
Ein einfaches Programm, das den Call-by-Reference verwendet, um die Natur dieser Funktion zu überprüfen. Auf diese Weise können wir überprüfen, ob der tatsächliche Wert geändert wird, nachdem wir den Aufruf als Referenz verwendet und die Variable innerhalb der Funktion geändert haben.
Code:
<?php function callByref(&$var) { $var.= ' This will be added to the function.'; } $var = 'Value before calling the function.'; echo $var ."<br><br>"; // printing variable before callig function callByref ($var); echo $var; ?>
Ausgabe:
Ein Beispielcode unterscheidet Call-by-Value und Call-by-Reference in PHP.
Code
<?php // call by value function echo "<br>Swap functionality by call be value:<br>"; function SwapCallByValue($a, $b){ $c=$a; $a=$b; $b=$c; echo ""; echo "<br>Value of a and b after swap: "; echo $a . " ".$b; } $a = 10; $b = 20; echo "Value of a and b before swap: "; echo $a . " ".$b; SwapCallByValue($a, $b); // swap functionality by call be a reference echo "<br><br>Swap functionality by call by reference:<br>"; function SwapCallByRefernce(&$a,&$b) { $c=$a; $a=$b; $b=$c; } $a = 10; $b = 20; echo "Value of a and b before swap: "; echo $a . " ".$b; SwapCallByRefernce($a, $b); echo "<br>Value of a and b after swap: "; echo $a . " ".$b; ?>
Ausgabe:
Wie wir im obigen Beispiel sehen können, funktioniert Call-by-Swap nicht, wenn wir den Wert von a und b außerhalb dieser Funktion ausgeben. Dies liegt daran, dass der Call-by-Value die tatsächliche Kopie der Variablen nicht verändert. Aber im Call-by-Reference können wir sehen, dass wir die Werte von a und b unmittelbar nach dem Aufruf dieser Funktion ausgeben und der Austausch funktioniert einwandfrei. Dies ist alles, während wir uns mit den Austauschfunktionen mit Call-by-Value und Call-by-Reference befassen.
Code:
<?php // this is the main function inside which the a funtion will be passed as a parameter function mainFunction(&$val) { $val++; echo $val; } // this function will be used as a parameter function &FunctionAsAParam() { $val = 15; return $val; } echo "A value of a after calling the function: "; $result = mainFunction(FunctionAsAParam()); // calling function, function as a reference parameter ?>
Ausgabe:
Im obigen Beispiel können wir sehen, dass eine Referenzfunktion FunctionAsAParam() als weiterer Funktionsparameter verwendet wird. Gemäß dem darin geschriebenen Code wird der Wert der Hauptvariablen zugewiesen. Die Funktion mainFunction() ist die Hauptfunktion des obigen Codes. Sie erhöht den Wert nach Verwendung von FunctionAsAParam() als Referenzfunktionsparameter. Es gibt verschiedene Möglichkeiten, wie wir die Funktion als Referenzparameter verwenden können.
Call by Reference verwendet das &-Symbol im Parameter zum Zeitpunkt der Erstellung, nicht beim Aufruf dieser Funktion. In der Sprache C oder C++ wird es im Gegensatz zu PHP normalerweise zum Zeitpunkt des Aufrufs dieser Funktion verwendet. Beim PHP-Call-by-Reference geht es darum, eine Funktion zu erstellen oder aufzurufen, die die tatsächliche Kopie der Variablen ändert. Daher ist zum Zeitpunkt des Aufrufs kein Referenzzeichen erforderlich, um den Fehler in PHP anzuzeigen.
Das obige ist der detaillierte Inhalt vonPHP-Aufruf per Referenz. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!