Costanti

Indice dei contenuti

Una costante è un identificatore (nome) per un valore. Come si può intuire, tale valore non può cambiare durante l'esecuzione dello script (fanno eccezione le costanti magiche, che, in realtà, non sono costanti). Le costanti sono "case-sensitive". È convenzione comune che gli identificatori delle costanti siano sempre maiuscoli.

Nota:

Prima di PHP 8.0.0, le costanti definite utilizzando la funzione define() possono non fare distinzione tra maiuscole e minuscole.

In PHP il nome di una costante segue le regole di qualsiasi "etichetta". Un nome di costante valido inizia con una lettera o underscore, seguita da un numero qualsiasi di caratteri alfanumerici o underscore. L'espressione regolare che esprime questa convenzione è: ^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$

È possibile eseguire la funzione define() per definire costanti con nomi riservati o addirittura non validi, il cui valore può essere recuperato solo con la funzione constant(). Tuttavia, non è consigliabile farlo.

Suggerimento

Si può anche consultare Guida Denominazione Spazio Utente.

Example #1 Nomi di costanti validi ed errati

<?php

// Nomi validi
define("FOO", "something");
define("FOO2", "something else");
define("FOO_BAR", "something more")

// Nomi di costante errati
define("2FOO", "something");

// Nomi validi, ma da evitare:
// un domani potrebbero essere utilizzati dal PHP per fornire costanti magiche
// e quindi si avrebbero problemi nello script
define("__FOO__", "something");

?>

Nota: In questo contesto una lettera è a-z, A-Z e i caratteri ASCII dal 128 al 255 (0x80-0xff).

Come le superglobals, costante è sempre globale. Si può accedere alle costanti da qualsiasi punto dello script senza tenere conto della visibilità. Per maggiori dettagli sulla visibilità, leggere la sezione scope della variable.

Nota: A partire da PHP 7.1.0, le costanti di classe possono dichiarare una visibilità protetta o privata, rendendole disponibili solo nello scope gerarchico della classe in cui è definita.