Manuale PHP
Indietro | Capitolo 21. Spiegazioni sui riferimenti | Avanti

# 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 ?>`

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. Nelle versioni recenti di PHP si avrà un warning indicante che "Call-time pass-by-reference" è deprecato quando si usa & foo(&$a); .

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()); ?>`

  Vedi anche le spiegazioni sulla restituzione 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:

`<?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 ?>`

Questi requisiti sono validi per PHP 4.0.4 e seguenti.

Indietro | Partenza | Avanti
Cosa i riferimenti non sono | Risali | Restituzione per riferimento