Restituzione per riferimento
La restituzione per riferimento è utile quando si vuole usare una funzione
per trovare quale variabile un riferimento dovrebbe limitare.
Non utilizzare il ritorno per riferimento per incrementare le prestazioni,
l'engine è capace di ottimizzare il codice per proprio conto. Restituire valori per riferimento
solo se si hanno validi motivi tecnici. Per
restituire per riferimento, si usa questa sintassi:
In questo esempio, la proprietà dell'oggetto restituito dalla funzione
getValue viene impostata, non la
copia, come sarebbe stato senza l'uso della sintassi del riferimento.
Nota:
Diversamente dal passaggio di un parametro, bisogna utilizzare
&
in entrambi i posti - nella dichiarazione per indicare che
si vuole restituire per riferimento, e non per copia come di consueto,
e per indicare nella chiamata, il collegamento del riferimento, piuttosto che l'usuale
assegnazione che verrebbe fatta per $myValue.
Nota:
Se si tenta di restituire un valore per riferimento da una funzione con la sintassi:
return ($this->value);
questo non
funzionerà poiché si sta tentando di restituire per riferimento il risultato di un'
espressione, e non una variabile. Da una funzione, si possono restituire
per riferimento solo le variabili.
A partire da PHP 4.4.0 e PHP 5.1.0, un
errore E_NOTICE
è lanciato se il codice cerca di restituire
un'espressione dinamica o un risultato dell'operatore new
.
Per utilizzare il riferimento restituito, occorre usare l'assegnazione per riferimento:
Al fine di passare il riferimento a un'altra funzione che richiede un riferimento
si può usare questa sintassi:
Nota:
Si noti che array_push(&collector(), 'foo');
non funzionerà, ma creerà un errore fatale.