Costanti di classe

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

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;
// 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.

Example #3 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.