ePrometeusCorsoLinuxLinux
testi articoli
Testi Articoli  Download
Home | PHP | Espressioni | Comandi | Libreria | Form | Cookie | Database | Config | 
CorsoJava è ora Video! Free for all!
Clicca Qui!
Tutorial PHP
Espressioni
Operatori
Array
Variabili di variabili


<<< Variabili di variabili

Quando si lavora con applicazioni Web, si ha la necessità di operare con molte variabili diverse, provenienti dalla form o mantenute come stato corrente. A volte la cosa più semplice è compilare degli elenchi di nomi di variabili. Cioè si hanno delle variabili che contengono il nome di un'altra variabile. Il PHP non ha puntatori, ma sopperisce a questa mancanza per le esigenze di cui abbiamo appena detto tramite l'uso di variabili che contengono altre variabili. Per esempio:

$a = "test";
$b = "a";
print "$b=";
print $$b;
=> a=test

Come si vede dall'esempio, utilizzando la sintassi $$b è stata stampata il valore della variabile il cui nome è contenuto nella variabile $b. Si tratta pertanto di un modo blando di avere dei (limitati) puntatori.

ATTENZIONE: Sebbene questa tecnica serve, è opportuno non abusarne perchè porta facilmente a scrivere programmi poco chiari, con dipendenze del tutto inaspettate e difficili da intuire. Se da un lato è vero che con l'aumentare della complessità delle applicazioni l'utilizzo di queste tecniche diventa indispensabile, dall'altro è anche vero che in questi casi si superano i limiti per cui è progettato il PHP. Quando si usano puntatori, occorre anche avere tipi diversi e diventa opportuno sviluppare applicazioni con tecniche ingegneristiche, progettazione ad oggetti ed uso di linguaggi meno semplici che supportino la programmazione ad oggetti, come Java.

La sintassi delle variabili di varibili porta ad avere delle ambiguità, per esempio quando la variabile è contenuta in un array o in una stringa. In questi casi si ricorre alle seguenti forme sintattiche:

$a = "test";
$b[]="a";
$c=$b[0];

print "$b[0]=";
print ${$b[0]};
=> a=test
print "$c=${$c}";
=> a=test

ATTENZIONE: è possibile usare una variabile che contiene il nome di una singola variabile , non di un elemento di array.

ePrometeus s.r.l. - Web Software House & Open Source System Integrator
MILANO - SAN BENEDETTO DEL TRONTO(AP)
Contatti: info@eprometeus.com