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à, 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 ).

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
?>

  

Esempio di dati statici



<?php
class foo {
    // PHP 5.3.0
    const BAR = <<<'EOT'
bar
EOT;
    // PHP 5.3.0
    const BAZ = <<<EOT
baz
EOT;
}
?>

  
Nota: Il supporto per l'inizializzazione di costanti con la sintassi Heredoc e Nowdoc è stato aggiunto in PHP 5.3.0.

Esempio di espressione delle costanti



<?php
const ONE = 1;

class foo {
    // PHP 5.6.0
    const TWO = ONE * 2;
    const THREE = ONE + self::TWO;
    const SENTENCE = 'Il valore di THREE è '.self::THREE;
}
?>

  

È possibile fornire un'espressione scalare che coinvolge numeri e stringhe e/o costanti nel contesto di una costante di una classe.

Nota: Il supporto per le espressioni delle costanti è stato aggiunto in PHP 5.3.0.