Forum und email

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. Retournez uniquement des références lorsque vous avez techniquement une bonne raison de le faire ! Pour retourner des références, utilisez cette syntaxe :

Example#1 Retourner des références

<?php
function &find_var($param) {
  
/*  ...code... */
  
return $found_var;
}
$foo =& find_var ($bar);
$foo->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.