Passaggio per riferimento

Si può passare una variabile ad una funzione per riferimento, modificandone gli argomenti. La sintassi è la seguente:

function foo(&$var)
{
    $var++;
}

$a=5;
foo($a);
// $a adesso è 6

Nota che non si usa il segno di riferimento nella chiamata della funzione, ma solo nella definizione. La definizione della funzione basta da sola per passare correttamente un argomento per riferimento.

Le seguenti cose possono essere passate per riferimento:

Qualunque altra cosa non dovrebbe essere passata per riferimento, poichè il risultato sarebbe indefinito. Per esempio, il seguente passaggio per riferimento non è valido:

function bar() // Nota l'assenza di &
{
    $a = 5;
    return $a;
}

foo(bar());
foo($a = 5) // Expressione: non una variabile
foo(5) // Constante: non una variabile

Questi requisiti sono validi per PHP 4.0.4 e seguenti.