Maison  >  Article  >  développement back-end  >  PHP passer par référence

PHP passer par référence

WBOY
WBOYoriginal
2024-08-29 12:48:07352parcourir

Le mot passage par référence du langage de programmation PHP lui-même indique que chaque fois que les variables passent par référence, le symbole esperluette (&) sera ajouté juste avant le ou les arguments de la variable. Prenons maintenant un exemple de « fonction(&$x) », ici la portée des variables globales et de fonction est de devenir des valeurs globales car elles sont définies en utilisant le même concept de référence. Ainsi, chaque fois que la variable globale va être modifiée, la variable qui se trouve à l'intérieur de la fonction changera également et vice versa et elle sera applicable à tout cela.

PUBLICITÉ Cours populaire dans cette catégorie DEVELOPPEUR PHP - Spécialisation | Série de 8 cours | 3 tests simulés

Commencez votre cours de développement de logiciels libres

Développement Web, langages de programmation, tests de logiciels et autres

Syntaxe et paramètres

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

Explication des paramètres du passage PHP par référence :

  • Function_name : Le paramètre function_name n'est rien d'autre que le nom de la fonction définie par l'utilisateur. On peut nommer n'importe quoi en fonction de vos besoins et en fonction de la tâche.
  • Function_parameter : Il s'agit du paramètre variable qui est utilisé pour le passage par référence dans le langage de programmation PHP. Ce paramètre variable peut être n'importe quoi. Il est également défini par l'utilisateur et peut être nommé n'importe quoi en fonction de vos exigences de codage. Mais il doit être représenté par le symbole esperluette (&).

Comment fonctionne le passage par référence en PHP ?

Le passage par référence du langage de programmation PHP fonctionne essentiellement en contournant simplement la ou les variables par référence à l'aide du symbole esperluette (&) juste avant l'argument de la variable. Si nous passons une variable par le concept de référence alors une fonction peut avoir la capacité de modifier la variable. De cette façon, le concept de passage par référence PHP fonctionne et c'est un concept important à connaître dans certains cas de codage. Pour certaines versions de PHP, le concept de passage par référence ne fonctionne pas bien. Dans PHP 5.3.0, vous rencontrerez un avertissement indiquant que « passage de l'heure d'appel par référence » et dans la version PHP 5.4.0, le passage de l'heure d'appel par référence sera supprimé, son utilisation entraînera donc des erreurs fatales. dans certaines versions de PHP.

Exemples d'implémentation de PHP Pass by Reference

Voici les exemples mentionnés :

Exemple n°1

Voici un exemple d'illustration du concept de passage par référence du langage de programmation PHP. Ici, dans un premier temps, une fonction « calculer() » est créée avec son paramètre de fonction de référence « $a1 ». Ensuite, à l’intérieur de la fonction, cette valeur variable est incrémentée. Ensuite, après être sortie de la fonction, la valeur de la variable « $a1 » est déclarée comme « 5 ». Ensuite, en utilisant la fonctionnalité d'écho, la valeur de $a1 sera imprimée, puis la fonction calculate() est appelée. Après avoir appelé la fonction, la fonction echo est à nouveau utilisée et cette fois, la valeur de la variable sera imprimée comme « 6 » en raison de l'incrémentation.

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

Sortie :

PHP passer par référence

Exemple n°2

C'est aussi un exemple illustrant le même concept du langage PHP mais ici les valeurs de chaîne sont utilisées au lieu d'utiliser des valeurs numériques comme dans l'exemple 1. Ici, la fonction print_string() est avec une variable « string1 » après le symbole esperluette. Ensuite, à l'intérieur de la fonction, la valeur de la variable string1 est attribuée en tant que « Fonctionnalité », puis utilisée pour imprimer la valeur de la variable string1. Ensuite, en dehors de la fonction, encore une fois, la valeur de la variable string1 est attribuée comme « Saké global ». Là encore, la variable $string1 est imprimée à l'aide de la fonctionnalité d'impression, mais cette fois, la valeur de chaîne présente à l'intérieur de la fonction est imprimée mais pas la valeur globale. C'est parce que le même concept de 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>";
?>

Sortie :

PHP passer par référence

Exemple #3

Cet exemple est similaire à l'exemple 2 mais ici, le symbole esperluette n'est pas utilisé uniquement pour garantir ce qui se passera s'il n'est pas utilisé. Si l'esperluette n'est pas utilisée, nous pouvons également l'appeler concept de transmission par valeur. N'oubliez donc pas d'utiliser le symbole & avant les paramètres variables de la fonction si vous n'en avez pas la capacité. Ici, lors de la deuxième sortie d'impression, vous obtiendrez « Global saké » en raison de l'absence de concept de passage par référence. Consultez simplement les résultats des exemples 2 et 3 pour mieux comprendre le concept.

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

Sortie :

PHP passer par référence

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 passer par référence

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.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn