Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Aufruf per Referenz

PHP-Aufruf per Referenz

WBOY
WBOYOriginal
2024-08-29 12:47:501057Durchsuche

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 Probetests

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

Syntax

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);

Wie funktioniert Call-by-Reference in PHP?

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:

  • Variable – eine normale Variable.
  • Eine Funktion, die die Referenz zurückgibt – eine wohldefinierte Funktion, die die Referenz zurückgibt, kann auch als Funktionsparameter im Call by Reference übergeben werden (siehe Beispiel E3).

Beispiele für den Call-by-Reference

Verschiedene Beispiele sind unten aufgeführt:

Beispiel #1

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:

PHP-Aufruf per Referenz

Beispiel #2

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:

PHP-Aufruf per Referenz

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.

Beispiel #3

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:

PHP-Aufruf per Referenz

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.

Fazit

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!

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
Vorheriger Artikel:PHP-AufruffunktionNächster Artikel:PHP-Aufruffunktion