|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Nov 2010
Messaggi: 211
|
[PHP] Puntatore e istanze oggetti
Ciao, volevo sapere quale è la differenza tra assegnare ad una variabile un riferimento ad un'istanza o l'istanza stessa.
Codice PHP:
|
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jul 2010
Città: Teramo
Messaggi: 1298
|
Non me lo sono mai posto come problema tantomeno me l'ero immaginato .
Comunque provando a ragionare dandogli l'istanza stessa nella memoria la locazione sarà la stessa, mentre invece sovrascrivendo la variabile normalmente, il contenuto di essa andrà a finire in un'altra locazione di memoria . Non ho mai visto una cosa simile, ho provato a ragionare ammesso che questa cosa esista ![]() Comunque mi sembra una cosa possibile, adesso sono curioso ![]() |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Nov 2010
Messaggi: 211
|
Ho trovato questo esempio che mi ha chiarito le idee.
Codice PHP:
int(42) int(42) change the variable itself int(42) object(stdClass)#1 (1) { ["foo"]=> int(42) } int(42) In pratica assegnando la referenza ad un'altra variabile si crea un nuovo nome per lo stesso spazio in memoria. Mentre assegnando l'istanza ad una nuova variabile si crea uno nuovo spazio di memoria in cui viene salvato il puntatore all'istanza. Con l'istruzione $a = 42; si modifica lo spazio di memoria identificato dal nome $a e $c che viene adibito al salvataggio di int. Mentre $b è uno spazio di memoria a sé che accoglie ancora il puntatore ad istanza. Ipotizzo sia più o meno così. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:43.