Il est possible de définir des valeurs constantes à l'intérieur d'une classe, qui ne seront pas modifiables. Les constantes diffèrent des variables normales du fait qu'on n'utilise pas le symbole $ pour les déclarer ou les utiliser.
La valeur doit être une expression constante, non (par exemple) une variable, un membre de la classe, le résultat d'une opération mathématique ou un appel de fonction.
Depuis PHP 5.3.0, il est possible de référencer une classe en utilisant une variable. La valeur de la variable ne peut être un mot clé (e.g. self, parent et static).
Exemple #1 Définition et utilisation d'une constante de classe
<?php
class MyClass
{
const constant = 'valeur constante';
function showConstant() {
echo self::constant . "\n";
}
}
echo MyClass::constant . "\n";
$classname = "MyClass";
echo $classname::constant . "\n"; // Depuis PHP 5.3.0
$class = new MyClass();
$class->showConstant();
echo $class::constant."\n"; // Depuis PHP 5.3.0
?>
Exemple #2 Exemple de données statiques
<?php
class foo {
// Depuis PHP 5.3.0
const bar = <<<'EOT'
bar
EOT;
}
?>
Contrairement à heredocs, nowdocs peut être utilisé dans n'importe quel contexte de données statiques.
Note: Le support de Nowdoc a été ajouté en PHP 5.3.0.