PHP: Variabili variabili

Come dare un nome ad una variabile in modo dinamico con PHP

// Linguaggio PHP   // Trick and Tips  

#PHP  

Davide Bausach /

Con PHP, il noto linguaggio di programmazione lato server, è possibile dare dei noi dinamici alle variabili. Cosa si intende per nome dinamico? Per nome dinamico si intende che una variabile avrà il nome di una stringa contenuta in un'altra variabile.

Questo potrebbe essere utile quando è necessario attribuire dei nomi alle variabili, sulla base di valori contenuti in altre strutture dati, come array o database e non se ne conosce sempre l'esatto valore o questo potrebbe variare nel tempo in quanto esso stesso dinamico.

Passiamo ad un semplice esempio per capire esattamente cosa intendo:
 $Hello = "World";
 $a = "Hello";

 $a; //Returns Hello
 $$a; //Returns World
Come si vede nello snippet di codice precedente, abbiamo due variabili: la variabile $a e la variabile $Hello. Il contenuto della variabile $a è una stringa con scritto "Hello" mentre il contenuto della variabile $Hello è una stringa con scritto "World".
Stampando a video la variabile $a otterremo ovviamente la scritta "Hello", per ottenere la scritta "World" si potrebbe non solo stampare a video la variabile $Hello, ma lo si potrebbe fare anche stampando la variabile $$a.

La sintassi appena vista con il doppio dollaro equivale a scrive il simbolo $ + il contenuto della variabile $a ovvero "Hello" quindi di conseguenza è come se avessimo voluto stampare la variabile $Hello.

È possible fare questo a potenzialmente infiniti livelli di variabili come segue:
$Bar = "a";
$Foo = "Bar";
$World = "Foo";
$Hello = "World";
$a = "Hello";

$a; //Returns Hello
$$a; //Returns World
$$$a; //Returns Foo
$$$$a; //Returns Bar
$$$$$a; //Returns a
E così via...

È possibile scrivere la sintassi anche nel seguente modo per una migliore leggibilità del codice:
${$a}
Gli esempi visti sopra sono tratti dal sito ufficiale del linguaggio PHP dove è possibile trovare l'intera documentazione riguardo questa utile funzione.

Warning: include_once(/var/www/vhosts/getdbjs.com/httpdocs/template/getdbjs-theme/html_include): failed to open stream: Success in /var/www/vhosts/getdbjs.com/httpdocs/template/getdbjs-theme/components/blog/s/view-s-blog.php on line 89

Warning: include_once(): Failed opening 'template/getdbjs-theme/html_include/' for inclusion (include_path='.:/opt/plesk/php/7.0/share/pear') in /var/www/vhosts/getdbjs.com/httpdocs/template/getdbjs-theme/components/blog/s/view-s-blog.php on line 89
Operazione eseguita con successo!