Rechercher une fonction PHP

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 visibilité par défaut des constantes de classe est public.

La valeur doit être une expression constante, pas (par exemple) une variable, une propriété, 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).

Notez que les constantes de classe sont allouées une fois par classe, et non pour chaque instance de classe.

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;
    
// Depuis PHP 5.3.0
    
const BAZ = <<<EOT
baz
EOT;
}
?>

Note:

La prise en charge de l'initialisation des constantes avec la syntaxe Heredoc et Nowdoc a été ajoutée dans PHP 5.3.0.

La constante spéciale ::class est disponible à partir de PHP 5.5.0, et permet une résolution de nom de classe pleinement qualifié à la compilation, cela est utile pour les classes avec un namespace:

Exemple #3 Exemple d'utilisation de ::class

<?php
namespace foo {
    class 
bar {
    }

    echo 
bar::class; // foo\bar
}
?>

Exemple #4 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.

Exemple #5 Exemple des expressions de constante

<?php
class Foo {
    
// Depuis PHP 7.1.0
    
public const BAR 'bar';
    private const 
BAZ 'baz';
}
echo 
Foo::BARPHP_EOL;
echo 
Foo::BAZPHP_EOL;
?>

Résultat de l'exemple ci-dessus en PHP 7.1 :

bar

Fatal error: Uncaught Error: Cannot access private const Foo::BAZ in …

Note:

À partir de PHP 7.1.0, la visibilité des constantes de classe peut être définie.

Rechercher une fonction PHP

Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-language.oop5.constants.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.

Références

  1. Consulter le document html Langue du document :fr Manuel PHP : http://php.net

Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.

Table des matières Haut