Vous pouvez passer des variables par référence, de manière à ce que la fonction modifie ses arguments. La syntaxe est la suivante :
Exemple #1 Passage par référence
<?php
function foo(&$var) {
  $var++;
}
$a=5;
foo ($a);
// $a vaut 6 maintenant
?>
Les objets suivants peuvent être passés par référence :
Une référence, retournée par une fonction :
Exemple #2 Retour d'une référence par une fonction
<?php
function &bar() {
 $a = 5;
 return $a;
}
foo(bar());
?>
Toutes les autres expressions ne doivent pas être passées par référence, car le résultat sera indéfini. Par exemple, les passages par référence suivants sont invalides :
Exemple #3 Passage par référence invalides
<?php
function bar() // Notez l'absence de &
{
   $a = 5;
   return $a;
}
foo(bar());    // Produit une erreur fatale depuis PHP 5.0.5
foo($a = 5);    // Expression, pas une variable
foo(5);         // Produit une erreur fatale
?>