Oggi vediamo un'esigenza un po' insolita ma che prima o poi può capitare a tutti, ovvero il dover
stampare a video tutte le costanti presenti/usabili in sito
php.
Grazie alla semplice funzione che andrò ad illustrare infatti, potremo sapere in un attimo quali costanti sono state definite a sistema, ed anche il loro contenuto.
Vediamo subito un esempio pratico per capirci meglio.
Come stampare a video tutte le costanti PHP
Innanzitutto, se per caso non sapete come definire una costante in php, basta rileggersi
questo post.
Una volta compreso quindi cosa sono le costanti, come di definisco e come si richiamano, ecco che possiamo subito andare ad analizzare il seguente codice per
ricavare l'elenco delle costanti php:
<?php
define("server","localhost");
define("tabella","test");
print_r(get_defined_constants(true));
?>
La funzione che fa quello che ci serve è la potentissima
get_defined_constants, che può essere valorizzata a
true o
false per suddividere le costanti ricavate in categorie, in quanto questa funzione php non andrà solo a ricavare quelle definite da noi nel codice, ma anche tutte quelle di sistema.
Se quindi scriviamo
get_defined_constants(false), il risultato sarà un array associativo contenente tutti gli array con
key il nome della costante e come
value il suo valore.
Se invece scriviamo
get_defined_constants(true) il risultato sarà una suddivisione di costanti in
core (costanti di sistema) e costanti
user (ovvero le costanti definite da noi nella nostra applicazione).
Se quindi volessimo
ricavare solo le costanti che abbiamo definito noi, ecco cosa potremmo scrivere:
<?php
define("server","localhost");
define("tabella","test");
print_r(get_defined_constants(true)["user"]);
?>
Ed ecco che a video avremo una cosa del genere:
Array ( [server] => localhost [tabella] => test )
Al momento non mi viene in mente nessun esempio valido, ma di sicuro saper come ricavare tutte le costanti usate in un sito/applicazione, prima o poi può sempre tornare utile.