~ 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 ).



Precedente ~ successivo


Fondamenti di sintassiIndice guida phpHome page