Passaggio per riferimento
Si può passare una variabile ad una funzione per riferimento, modificandone gli argomenti. La sintassi è la seguente:
<?php
function foo(&$var)
{
$var++;
}
$a=5;
foo($a);
// $a adesso è 6
?>
Le seguenti cose possono essere passate per riferimento:
- Variabili, es. foo($a)
- Operatore New, es. foo(new foobar())
-
Riferimento restituito da una funazione, es.
<?php
function &bar()
{
$a = 5;
return $a;
}
foo(bar());
?>
Qualunque altra cosa non dovrebbe essere passata per riferimento, poichè il risultato sarebbe indefinito. Per esempio, il seguente passaggio per riferimento non è valido:
<?php
function bar() // Nota l'assenza di &
{
$a = 5;
return $a;
}
foo(bar()); // produce un errore fatale da PHP 5.1.0
foo($a = 5); // Expressione: non una variabile
foo(5); // Genera un errore fatale
?>