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 :

Exemple #1 Retourner des r�f�rences

<?php
class foo {
    public 
$value 42;

    public function &
getValue() {
        return 
$this->value;
    }
}

$obj = new foo;
$myValue = &$obj->getValue(); // $myValue est une r�f�rence de $obj->value, qui vaut 42.
$obj->value 2;
echo 
$myValue;                // affiche la nouvelle valeur de $obj->value, i.e. 2.
?>

Dans cet exemple, on affecte une valeur � la propri�t� de l'objet retourn� par la fonction getValue, 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) pour la variable $myValue.

Note: Si vous tentez de retourner une r�f�rence depuis une fonction avec la syntaxe :return ($this->value);, 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. Depuis PHP 4.4.0 et PHP 5.1.0, une alerte E_NOTICE est envoy�e si le code tente de retourner une expression dynamique ou un r�sultat de l'op�rateur new.