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

Appel PHP par référence

WBOY
WBOYoriginal
2024-08-29 12:47:501053parcourir

L'appel par référence consiste à transmettre la référence de la variable en tant que paramètre de fonction. Puisque PHP ne prend pas directement en charge le type de mécanisme de pointeur, il prend en charge une référence pour gérer diverses opérations. En langage PHP, la valeur réelle de cette variable de maintien sera modifiée si la valeur à l'intérieur d'une fonction est modifiée ; cela ne peut pas être réalisé dans l’appel par valeur. Le symbole esperluette (&) peut être utilisé comme préfixe lors du passage d'une variable comme référence dans l'appel être une référence. Le symbole & lui-même représente qu'une variable est utilisée comme référence. Une fonction de référence peut également être passée en paramètre à une autre fonction. Dans cette rubrique, nous allons découvrir PHP Call by Reference.

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

Il n'y a pas de syntaxe spéciale pour utiliser cela, mais oui, le signe & doit être utilisé lors du passage d'un paramètre à la fonction.

La déclaration de fonction pourrait être comme ci-dessous :

function callByref(&$var)
{
$var.= 'inside the Call By Reference function.';
}

Aucune opération spéciale n'est nécessaire lors de l'appel de cette fonction ; la même chose peut être utilisée comme une fonction normale (appel par valeur).

$var = 'Yes, I am';
callByref ($var);

Comment fonctionne l'appel par référence en PHP ?

Avant de procéder au fonctionnement de l'appel par référence, il aurait dû y avoir des exigences pour qu'il puisse être adapté à une fonction. Ensuite, dans la déclaration de cette fonction spécifiée, nous pouvons utiliser le signe de référence à une variable paramètre. Comprenons la même chose avec un exemple rapide.

function callByref(&$var)
{
$var.= 'Call By Reference function.';
}
$var = 'Try to check the reference, I am inside the ';

Lorsque nous essayons d'imprimer le $var ici, cela affichera le message ci-dessus

echo $var;
// printing variable before calling function

Appel de la fonction maintenant, appeler cette fonction modifiera la valeur réelle de la variable

$var selon écrit à l'intérieur de la fonction.

callByref ($var);
echo $var;
// this will be print the combined value of the string.

Dans le langage PHP ci-dessous mentionné peut être utilisé comme appel par référence :

  • Variable – une variable normale.
  • Une fonction qui renvoie la référence – une fonction bien définie qui renvoie la référence peut également être passée en paramètre de fonction dans l'appel par référence (voir l'exemple E3).

Exemples d'appel par référence

Différents exemples sont mentionnés ci-dessous :

Exemple n°1

Un programme simple utilisant l'appel par référence pour vérifier la nature de cette fonction. En cela, nous pouvons vérifier que la valeur réelle est modifiée après avoir utilisé l'appel par référence et modifié la variable depuis l'intérieur de la fonction.

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

Sortie :

Appel PHP par référence

Exemple n°2

Un exemple de code différencie l'appel par valeur et l'appel par référence en 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;
?>

Sortie :

Appel PHP par référence

Comme nous pouvons le voir dans l'exemple ci-dessus, l'appel par échange ne fonctionnera pas si nous imprimons la valeur de a et de b en dehors de cette fonction. En effet, l'appel par valeur ne modifie pas la copie réelle de la variable. Mais dans l'appel par référence, nous pouvons voir que nous imprimons la valeur de a et b immédiatement après avoir appelé cette fonction, et l'échange fonctionne correctement. C'est tout pendant que nous traiterons des fonctions d'échange avec appel par valeur et appel par référence.

Exemple #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
?>

Sortie :

Appel PHP par référence

Dans l'exemple ci-dessus, nous pouvons voir qu'une fonction de référence FunctionAsAParam() est utilisée comme autre paramètre de fonction. Selon le code écrit à l'intérieur, il attribue la valeur de la variable principale. La fonction mainFunction() est la fonction principale du code ci-dessus, augmente la valeur après avoir utilisé FunctionAsAParam() comme paramètre de fonction de référence. Il existe différentes manières d'utiliser la fonction comme paramètre de référence.

Conclusion

L'appel par référence utilise le symbole & dans le paramètre au moment de la création, pas lors de l'appel de cette fonction. Dans le langage C ou C++, il est généralement utilisé lors de l'appel de cette fonction, contrairement à PHP. L'appel PHP par référence consiste à créer ou à appeler une fonction qui modifie la copie réelle de la variable. Par conséquent, aucun signe de référence n'est requis au moment de l'appel à volonté donne l'erreur en PHP.

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
Article précédent:Fonction d'appel PHPArticle suivant:Fonction d'appel PHP