Les références vous permettent de faire pointer deux variables sur le même contenu. Par exemple, lorsque vous faites :
Note : $a et $b sont complètement égales ici : ce n'est pas $a qui pointe sur $b, ou vice versa. C'est bien $a et $b qui pointent sur le même contenu.
Note : Si un tableau par référence est copié, ses valeurs ne sont pas déréférencées. Cela est valide également pour les tableaux passées par valeur aux fonctions.
La même syntaxe peut être utilisée avec les fonctions qui retournent des références, et avec l'opérateur new (PHP 4.0.4 et plus récent):
Note : A moins d'utiliser la syntaxe ci-dessus, le résultat de $bar = new fooclass() ne sera pas la même variable que $this dans le constructeur, ce qui signifie que si vous avez utilisé la référence $this dans le constructeur, vous devez assigner la référence, ou bien obtenir deux objets différents.
Même si vous pouvez utiliser l'opérateur @ pour supprimer les messages d'erreurs du constructeur avec la syntaxe @new, cela ne fonctionnera pas avec la syntaxe &new. C'est une limitation du moteur Zend, et cela conduit à une erreur d'analyse.
Note : Si vous assignez des valeurs par références dans une structure foreach, les références seront égalements modifiées.
Avertissement | |
Les tableaux complexes sont parfois plutôt copiés que référencés. De ce fait, l'exemple suivant ne fonctionnera pas comme prévu : |
Le deuxième intérêt des références est de pouvoir passer des variables par référence. On réalise ceci en faisant pointer des variables locales vers le contenu des variables de fonction. Exemple :
Le troisième intérêt des références est de retourner des valeurs par référence.
Précédent | Sommaire | Suivant |
Les références | Niveau supérieur | Ce que les références ne sont pas |