Les classes et les objets
PHP Manual

Constantes de classe

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 que l'on n'utilise pas le symbole $ pour les déclarer ou les utiliser.

La valeur doit être une expression constante, pas (par exemple) une variable, une propriété, le résultat d'une opération mathématique, ou un appel de fonction.

Il est aussi possible pour les interfaces d'avoir des constantes. Regardez la documentation des interfaces pour quelques exemples.

Depuis PHP 5.3.0, il est possible de référencer la classe en utilisant une variable. La valeur de la variable ne peut pas ê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ée dans n'importe quel contexte de données statiques.

Note:

Le support de Nowdoc a été ajouté en PHP 5.3.0.

Exemple #3 Exemple des expressions de constante

<?php
const ONE 1;

class 
foo {
    
// Depuis PHP 5.6.0
    
const TWO ONE 2;
    const 
THREE ONE self::TWO;
    const 
SENTENCE 'The value of THREE is '.self::THREE;
}
?>

Il est possible de fournir une expression scalaire impliquant des nombres et des chaînes de caractères, et/ou des constantes dans un contexte d'une classe.

Note:

Le support des expressions de constante a été ajouté en PHP 5.6.0.


Les classes et les objets
PHP Manual