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 synthaxe :
Exemple 21-11. 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 synthaxe :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.