Passage par référence

Vous pouvez passer des variables par référence, de manière à ce que la fonction modifie ses arguments. La syntaxe est la suivante :


<?php
function foo (&$var) {
    $var++;
}
$a=5;
foo ($a);
// $a vaut 6 maintenant
?>
     

Notez qu'il n'y a pas de signe de référence dans l'appel de la fonction, uniquement sur sa définition. La définition de la fonction est suffisante pour passer correctement des arguments par référence.

Les objets suivants peuvent être passés par référence :

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 :


function bar() // Notez l'absence de &
{
        $a = 5;
        return $a;
}
foo(bar));
foo($a = 5) // Expression, pas une variable
foo(5) // Constante, pas une variable
     

Ces fonctionnalités sont valables à partir de PHP 4.0.4.