Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Referenzübergabe

PHP-Referenzübergabe

WBOY
WBOYOriginal
2024-08-29 12:48:07494Durchsuche

Das Wort „Übergabe durch Referenz“ der PHP-Programmiersprache selbst besagt, dass immer dann, wenn die Variablen per Referenz übergeben werden, das kaufmännische Und-Symbol (&) direkt vor dem Argument/den Argumenten der Variablen hinzugefügt wird. Nehmen Sie nun ein Beispielbeispiel „Funktion(&$x)“. Hier sollen sowohl die globale als auch die Funktionsvariable zu globalen Werten werden, da sie mit demselben Referenzkonzept definiert sind. Wenn also die globale Variable geändert wird, ändert sich auch die Variable innerhalb der Funktion und umgekehrt, und sie gilt für alle diese.

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 und Parameter

function function_name(&$function_parameter){
..
..
}

Erklärung der Parameter des PHP-Referenzdurchlaufs:

  • Function_name: Der Parameter function_name ist nichts anderes als der Name der Funktion, der vom Benutzer definiert wird. Man kann je nach Bedarf und Aufgabenstellung alles benennen.
  • Funktionsparameter: Dies ist der variable Parameter, der für die Referenzübergabe in der PHP-Programmiersprache verwendet wird. Dieser variable Parameter kann beliebig sein. Es ist außerdem benutzerdefiniert und kann je nach Ihren Codierungsanforderungen beliebig benannt werden. Es sollte jedoch mit dem kaufmännischen Und-Symbol (&) dargestellt werden.

Wie funktioniert Referenzübergabe in PHP?

Die Referenzübergabe der PHP-Programmiersprache funktioniert im Grunde nur durch Umgehen der Variablen als Referenz mit Hilfe des kaufmännischen Und-Symbols (&) direkt vor dem Argument der Variablen. Wenn wir eine Variable durch das Referenzkonzept übergeben, kann eine Funktion die Fähigkeit haben, die Variable zu ändern. Auf diese Weise funktioniert das PHP-Pass-by-Reference-Konzept und es ist wichtig, dieses Konzept in einigen Codierungsfällen zu kennen. Bei einigen PHP-Versionen funktioniert das Konzept der Referenzübergabe nicht gut. In PHP 5.3.0 werden Sie auf eine Warnung stoßen, die besagt, dass „Call-Time Pass-by-Reference“ und in der PHP-Version 5.4.0 die Call-Time-Pass-by-Reference entfernt wird, sodass die Verwendung dieser Funktion einige schwerwiegende Fehler auslöst in einigen PHP-Versionen.

Beispiele zur Implementierung von PHP Pass by Reference

Im Folgenden finden Sie die genannten Beispiele:

Beispiel #1

Dies ist das Beispiel zur Veranschaulichung des Pass-by-Reference-Konzepts der PHP-Programmiersprache. Hier wird zunächst eine Funktion „calculate()“ mit ihrem Referenzfunktionsparameter „$a1“ erstellt. Dann wird dieser Variablenwert innerhalb der Funktion erhöht. Nach dem Verlassen der Funktion „$a1“ wird der Variablenwert als „5“ deklariert. Anschließend wird mithilfe der Echo-Funktionalität der Wert von $a1 ausgegeben und anschließend die Funktion berechne() aufgerufen. Nach dem Aufruf der Funktion wird die Echo-Funktion erneut verwendet und dieses Mal wird der Variablenwert aufgrund der Inkrementierung als „6“ ausgegeben.

Code:

<?php
function calculate(&$a1){
$a1++;
}
$a1=5;
echo "This is the value of a1 variable before the function call :: ";
echo $a1;
echo "<br>";
echo "This is the value of a1 variable after the function call :: ";
calculate($a1);
echo $a1;
?>

Ausgabe:

PHP-Referenzübergabe

Beispiel #2

Dies ist auch ein Beispiel zur Veranschaulichung des gleichen Konzepts der PHP-Sprache, aber hier werden String-Werte anstelle von numerischen Werten wie in Beispiel 1 verwendet. Hier ist die Funktion print_string() mit einer Variablen „string1“ nach dem kaufmännischen Und-Symbol versehen. Dann wird innerhalb der Funktion der Variablenwert string1 als „Funktionssache“ zugewiesen und dann zum Drucken des Variablenwerts string1 verwendet. Dann wird außerhalb der Funktion erneut der Variablenwert string1 als „Global Sake“ zugewiesen. Dann wird die Variable $string1 erneut mit der Druckfunktion gedruckt, aber dieses Mal wird der in der Funktion vorhandene String-Wert gedruckt, nicht jedoch der globale Wert. Dies liegt am gleichen Konzept von PHP.

Code:

<?php
// Here Function is used just for assigning the new value to
// some $string1 variable and then printing it
echo "This is the exampe of PHP pass by reference concept :: ";
echo "<hr>";
function print_string( &$string1 ) {
$string1 = "Function sake \n";
// Print $string1 variable
print( $string1 );
echo "<br>";
}
// Drivers code
$string1 = "Global sake \n";
print_string( $string1 );
print( $string1 );
echo "<br>";
?>

Ausgabe:

PHP-Referenzübergabe

Beispiel #3

Dieses Beispiel ähnelt Beispiel 2, aber hier wird kein kaufmännisches Und-Symbol verwendet, nur um sicherzustellen, was passiert, wenn es nicht verwendet wird. Wenn kein kaufmännisches Und verwendet wird, können wir es auch als Wertübergabekonzept bezeichnen. Vergessen Sie also nicht, das &-Symbol vor den variablen Parametern der Funktion zu verwenden, wenn Sie die Funktion nicht nutzen können. Hier bei der zweiten Druckausgabe erhalten Sie aufgrund des fehlenden Pass-by-Reference-Konzepts „Global Sake“. Schauen Sie sich einfach die Ergebnisse von Beispiel 2 und Beispiel 3 an, um das Konzept besser zu verstehen.

Code:

<?php
// Here Function is used just for assigning the new value to
// some $string1 variable without using ampersand and then printing it
echo "This is the example of PHP pass by reference concept but exempted ampersand symbol :: ";
echo "<hr>";
function print_string( $string2 ) {
$string2 = "Function sake \n";
// Print $string1 variable
echo "This is the function's variable parameter value inside function :: ";
print( $string2 );
echo "<br>";
}
// Drivers code
$string2 = "Global sake \n";
print_string( $string2 );
echo "This is the function's variable parameter value outside the function :: ";
print( $string2 );
echo "<br>";
?>

Ausgabe:

PHP-Referenzübergabe

Example #4

This is the example of implementing the swapping functionality with the help of the swap() function and the same concept of the PHP Programming Language. Here at first two variables a1 , b1 is created with numerical and string values. Then those numbers are swapped with the swap() function. Then inside of the function using an extra variable value are jumbled to one other for swapping functionality. Then swapping will be done with that function. You can check out the output in the output section to understand the pass by reference with the swapping mechanism of PHP.

Code:

<?php
// ------------------------------------------
// This is sample Demo call of swap(...) function below.
echo "This is the example of swapping two variable values using the pass by reference concept of PHP :: ";
echo "<br>";
$a1 = 123.456;
$b1 = 'abcDEF';
print "<pre class="brush:php;toolbar:false">Define:\na1 = $a1\nb1 = '$b1'
"; swap($a1,$b1); print "
After swap(a1,b1):\na1 = '$a1'\nb1 = $b1
"; // ------------------------------- function swap (&$arg11, &$arg12) { // Now Swapping the contents of the indicated variables. $w1=$arg11;   $arg11=$arg12;   $arg12=$w1; } ?>

Output:

PHP-Referenzübergabe

Conclusion

I hope you learned what is the definition of PHP pass by reference along with its syntax and some explanation of the parameters, How the works in PHP Programming Language along with various examples of PHP to understand PHP pass by reference concept better.

Das obige ist der detaillierte Inhalt vonPHP-Referenzübergabe. 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