|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jun 2001
Messaggi: 702
|
Php
Sto studiando l ambito delle variabili in PHP.
Le vriabili globali dichiarate nelgli script non sono accessibili alle funzioni. Le funzioni usano variabili con ambito locale. Ora per mettere a disposizione i valori delle variabili dello script all interno delle funzioni le posso mettere come argomento della funzione( che userà i valori di quelle variabili , senza modificare le originali) Se invece voglio importare la variabile all interno della funzione posso usare due modi. E qui nasce la mia domanda. O rendo globale la variabile nella funzione , oppure passo la variable per "&" riferimento nell argmento della funzione. Ho provato in tutti e due i modi , e non ho notato differenze tra queste due tecniche. In entrambi casi la variabile originale viene usata con il suo valore originale e viene realmente modificata dalla funzione. Che differeze ci sono tra queste due tecniche ? |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jun 2001
Messaggi: 702
|
Nessuna?
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jan 2002
Città: Rimini
Messaggi: 1203
|
qualche differenza c'e', a me piace piu' il by reference (meno possibilita' di errori con variabili dichiarate piu' volte)
cmq in questo momento mi sto cimentando con delphi+mysql e devo dire che si fanno delle cosine veramente egregie! ![]() |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Jun 2001
Messaggi: 702
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Jan 2002
Città: Rimini
Messaggi: 1203
|
intendevo differenze NON operative, da qualche parte avevo anche un doc che spiegava in quali occasioni usare un metodo o l'altro... se lo ritrovo posto il link (o lo metto cmq a disposizione)
dal punto di vista dell'utilizzo della memoria non dovrebbe cambiare assolutamente nulla spero di poterti essere piu' utile a breve ! _V_ |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Jun 2001
Messaggi: 702
|
Grazie!
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Jan 2002
Città: Rimini
Messaggi: 1203
|
eh... sarebbe un piacere... se riuscissi a ritrovarlo... damn...
sto diventando proprio vecchio ![]() ![]() ![]() |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Sep 1999
Messaggi: 71
|
concettualmente passare un reference implica passare l'indirizzo della cella di memoria dove risiede la variabile (pointer) mentre la variabile globale viene richiamata di per se
dunque all'interno della funzione il reference è trattato come puntatore a un oggetto mentre la variabile globale come variabile del tipo che rappresenta ..almeno spero!!!
__________________
Sono il webmaster di:WWW.BANANASLIDE.NET : sito di scambio slide gratuito WWW.TERZOTRIUMVIRATO.IT : l'unico sito che ti mette la lingua in bocca!!!! |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Questo è in pratica quello che avviene in ogni linguaggio di programmazione che supporta il apssaggio di variabili per riferimento...
In pratica alla funzione viene passato solamente l'indirizzo della variabile da utilizzare... In genere passare variabli complesse (ad esempio, vettori, strutture, classi) per riferimento è molto più performante che passarle per valore (altrimenti i dati devono essere copiati dall'ambiente chiamante all'ambiente locale)... La soluzione "variabile globale" è sicuramente + sporca, ma è anche quella in definitiva + efficiente per l'uso delle risorse...soprattutto nel caso di molte chiamate di funzioni annidate... |
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Jun 2001
Messaggi: 702
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:18.