Si possono definire valori costanti relativi ad una classe che rimangano non modificabili. Le costanti si distinguono dalle normali variabili poiché non si utilizza il simbolo $ per dichiararle o riferirsi ad esse.
Il valore deve essere un'espressione costante, non (ad esempio) una variabile, una proprietà, il risultato di una operazione matematica, o la chiamata ad una funzione.
È inoltre possibile dichiarare constants relative alle interfacce. Fare riferimento alla documentazione interfacce per degli esempi.
A partire da PHP 5.3.0, è possibile fare riferimento alla classe utilizzando una variabile. Il valore della variabile non può essere una parola chiave (ad esempio, self parent o static ).
Example #1 Definire ed usare una costante
<?php
class MiaClasse
{
const costante = 'valore costante';
function mostraConstante() {
echo self::costante . "\n";
}
}
echo MiaClasse::costante . "\n";
$nomeclasse = "MiaClasse";
echo $nomeclasse::costante . "\n"; // PHP 5.3.0
$classe = new MiaClasse();
$classe->mostraConstante();
echo $classe::costante."\n"; // PHP 5.3.0
?>
Example #2 Esempio di dati statici
<?php
class foo {
// PHP 5.3.0
const bar = <<<'EOT'
bar
EOT;
}
?>
A differenza degli heredocs, i nowdocs possono essere usati in qualunque contesto dati statico.
Nota:
Il supporto per Nowdoc è stato aggiunto in PHP 5.3.0.