Le costanti sono dei contenitori immutabili per dei valori semplici (stringhe e numeri), che possono essere accedute attraverso il loro nome senza che questi sia preceduto dal classico simbolo del dollaro ($).
Le costanti in PHP possono essere definite manualmente oppure essere impostate automaticamente da PHP in base al contesto ed alle librerie caricate. Le costanti vengono impostate manualmente usando l'istruzione define()
:
define('MIA_COSTANTE', 1); define('SECONDA_COSTANTE', prova);
È convenzione specificare dei nomi composti solamente da caratteri maiuscoli o underscore. Le costanti possono essere accedute in questo modo:
echo MIA_COSTANTE; echo "<br />; echo SECONDA_COSTANTE;
Per controllare che una costante sia definita effettivamente è necessario utilizzare la funzione defined
, che accetta come argomento la stringa che identifica il nome della costante da controllare.
/*
Il codice che segue avrà un comportamento differente da quello che ci aspettiamo.
NON_DEFINITA viene trasformata in una stringa NON_DEFINITA, viene restituito
un notice da PHP e l'espressione viene valutata vera, eseguendo quindi il codice
tra graffe che invece vorremmo saltare.
*/
If(NON_DEFINITA)
{
// ....
}
// Questo è corretto
if(defined('NON_DEFINITA'))
{
// ...
}
PHP definisce automaticamente moltissime costanti, molte delle quali specifiche per le librerie importate. Le più importanti, indipendenti dalle librerie, e che spesso risultano utili sono le seguenti:
- __FILE__: il path del file in cui ci troviamo. In caso il file sia incluso da un altro in esecuzione __FILE__ avrà comunque il nome del file incluso;
- __CLASS__: il nome della classe in cui ci troviamo attualmente;
- __FUNCTION__: il nome della funzione in esecuzione;
- __METHOD__: il nome del metodo in esecuzione;
- __LINE__: il numero di linea corrente;