venerdì 6 luglio 2012

PHP e ritorno di reference

Ammetto di non aver studiato molto i reference di PHP, ma sono incappato in una stranezza: un metodo che ritorna un reference (quindi tramite operatore &) deve essere usato in un contesto di assegnamento per riferimento, altrimenti si ha sempre la copia.
In altre parole:

function & arrayReference(){ ... }
$arrayRef = arrayReference();

è sbagliato, poiché il metodo ritorna un riferimento, ma questo viene poi usato in un "assegnamento per copia" (la cosa mi ricorda molto il C++). Il modo corretto di procedre è:

function & arrayReference(){ ... }
$arrayRef = & arrayReference();

Nessun commento: