Eventuali duplicati:
In PHP can someone explain cloning vs pointer reference?Se gli oggetti vengono passati da un alias quando si passa per riferimento?
Secondo http://php.net/manual/en/language.oop5.references.php
Uno dei punti chiave di PHP 5 OOP che viene spesso menzionato è che "gli oggetti sono passati per riferimenti per impostazione predefinita ". Questo non è completamente vero. Questa sezione rettifica quel pensiero generale usando alcuni esempi.
Un riferimento PHP è un alias, che consente a due variabili diverse di scrivere sullo stesso valore. A partire da PHP 5, una variabile oggetto non contiene più l'oggetto stesso come valore. Contiene solo un identificatore di oggetto che consente agli oggetti di accesso di trovare l'oggetto reale. Quando un oggetto viene inviato per argomento, restituito o assegnato a un'altra variabile, le diverse variabili non sono alias: contengono una copia dell'identificatore, che punta allo stesso oggetto.
Se gli oggetti vengono passati da alias o gestore, in quale situazione si vorrebbe effettivamente passare per riferimento?
myFunc($obj); // Pass by alias/handler
myFunc(& $obj); // Pass by reference (when would you do this?)
myFunc(clone $obj); // Create a new object
Quali sono i diversi casi d'uso per ciascuno di questi?
Penso che questa lezione riguardasse l'argomento: http://www.youtube.com/watch?v=bxxIXPc9IR8 (tra le altre cose) –
Nota, il riferimento pass-by-call è stato deprecato almeno dal 5.3, se non prima. La funzione dichiara quali argomenti si aspetta siano riferimenti e il chiamante non deve specificare che sono riferimenti e, in effetti, non dovrebbe. – cHao