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 22.8. 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 22.9. Retour d'une référence par une fonction
<?php
function &
bar
() {
$a
=
5
;
return
$a
;
}
foo
(
bar
());
?>
Voir aussi des détails dans retourner des références
.
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 22.10. 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
?>