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.