5.12 Les références
5 Référence du langage
Manuel PHP
. Qu'est ce qu'une référence? . Que font les références ? . Ce que les références ne sont pas . Passage par référence ->Retourner des références . Détruire une référence . Repérer une référence
|
5.12.5 Retourner des références
Retourner des références est toujours utile lorsque vous
voulez utiliser une fonction pour savoir à quoi est liée
une variable. N'utilisez
pas
le retour par référence pour améliorer les performances,
le moteur est suffisamment robuste pour optimiser cela
en interne. Retourner uniquement des références
lorsque vous avez techniquement une bonne raison
de le faire ! Pour retourner des références, utilisez cette syntaxe :
| Retourner des références |
<?php function &find_var($param) { /* ...code... */ return $found_var; } $foo =& find_var ($bar); $foo->x = 2; ?>
|
Dans cet exemple, on affecte une valeur à la propriété de l'objet
retourné par la fonction
find_var
, et non à sa copie,
comme ce serait le cas si on n'avait pas utilisé la syntaxe de référence.
| Note | |
Contrairement au passage de paramètre, vous devez utiliser
&
aux deux endroits, à la fois pour
indiquer que vous retournez par référence (pas une
copie habituelle), et pour indiquer que vous assignez aussi par
référence (pas la copie habituelle).
|
| Note | |
Si vous tentez de retourner une référence depuis une fonction
avec la syntaxe :
return ($found_var);
,
cela ne fonctionnera
pas
comme
vous l'attendez et retournera le résultat de l'
expression
,
mais pas de la variable, par référence. Vous ne pouvez retourner
des variables par référence que depuis une fonction - rien d'autre.
L'erreur
E_NOTICE
est envoyée depuis
PHP 4.4.0 et PHP 5.1.0 si le code tente de retourner une expression dynamique
ou un résultat de l'opérateur
new
.
|
|