Documentation PHP en français

  • Français

Ce que les références ne sont pas

Comme nous l'avons vu précédemment, les références ne sont pas des pointeurs. Cela signifie que le script suivant ne fera pas ce à quoi on peut s'attendre :

<?php
function foo(&$var) {
  
$var =& $GLOBALS["baz"];
}
foo($bar);
?>

Ici, la variable $var dans la fonction foo sera liée à $bar dans l'appelant, mais elle sera ensuite reliée à $GLOBALS["baz"]. Il n'est pas possible de lier $bar à quelque chose d'autre en utilisant le mécanisme de références, car $bar n'est pas accessible dans la fonction foo (certes, elle est représentée par $var, mais $var ne fait référence qu'à la valeur, et n'a pas de liaison dans la table de symboles de l'appelant). Vous pouvez utiliser le retour par référence pour référencer des variables sélectionnées par la fonction.