~ Fondamenti di sintassi ~
Variabili dinamiche
Variabili dinamiche
In php è possibile assegnare ad una variabile il nome di
un'altra variabile.
Poniamo di avere una variabile
<?php
$user="Mark";
e di inizializzare un'altra variabile che abbia come valore
il nome della prima variabile.
$holder="user";
Proviamo adesso a visualizzare il valore della prima
variabile
print " <center><font color="blue" > $user
</font></center>";
avremo come risultato:
Mark
proviamo ora a sostituire $user con
$$holder,
in cui
$holder sarà sostituito dal valore preventivamente assegnatogli
ottenendo così teoricamente $user. Quindi se scriviamo la
seguente riga di codice:
print " <center><font color="blue" > $$holder
</font></center>";
otterremo come risultato:
$user
l'interprete php non ha fatto altro che sostituire
$holder con la stringa user mantenendo il primo simbolo
del $.
Per informare l'interprete php che la variabile $holder
è una variabile dinamica bisogna fornirgli un piccolo aiuto inseredola
tra parentesi graffe {}. Se difatti riscriviamo il codice nel modo
seguente:
print " <center><font color="blue" > ${$holder}
</font></center>";
otterremo:
Mark
ossia il valore contenuto in $user.
Riassumiamo ora di seguito il comportamento dell'interprete
php a secondo della sintassi del codice:
Esempio 1
<?php
$name="Osvaldo";
$old="name";
1)print $$old."<br>"; 
\isualizza:Osvaldo
2)print"$$old<br>"; \isualizza:$name
3)print "${$old}<br>"; \isualizza:Osvaldo
?>
Esempio 2:
il comportamento dell'interprete
ad una diversa impostazione delle variabili:
<?php
$old="name";
$$old="Nico";
1)print "$name <br>"; \isualizza:Nico
2)print $name."<br>"; \isualizza:Nico
3)print "${'name'}<br>"; \isualizza:Nico
4)print $$old."<br>"; \isualizza:Nico
5)print "${$old}<br>"; \isualizza:Nico
6)print "$$old<br>"; \isualizza:$name
?>
La comprensione della sintassi relativa alla
funzione print() di php sarà più
chiara quando passeremo all'analisi del concetto e dell'uso delle
funzioni in php.
Per il momento ci limiteremo a sottolineare che bisogna fare
molta attenzione all'uso dei doppi apici "", quando si manipolano delle
variabili dinamiche, in quanto la loro presenza
indica all'interprete che si sta inserendo una stringa.
Ragion per cui
php si comporterà diversamente a secondo che si scriva "$$old"
(vedi: Esempio 2 riga 6)
oppure $$old(vedi: Esempio 2 riga 4) .
Difatti nel primo caso l'interprete sostituirà il valore assegnato
a $old mantenedo il primo simbolo di $ come un qualsiasi carattere
(visualizzando quindi $name) nel
secondo caso invece lo interpreterà come identificativo di
una variabile (visualizzando Nico e cioè a dire il valore di $$old).
Dal codice, inoltre, si può rilevare un'altra possibilità: l'utilizzo
delle parentesi graffe {} all'interno del codice racchiuso dai
doppi apici. Queste infatti segnalano all'interprete che il dato al loro
interno è una variabile dinamica e non va trattato quindi come stringa
(Esempio 2 riga 5 ).