Définit la racine d'un document HTML
Il est possible de définir des valeurs constantes à l'intérieur d'une classe.Pour accéder aux constantes, on utilise l'opérateur de résolution de portée
Vous avez peut être remarqué que dans les chapitres précédents en parlant des membres d’une classe, à savoir les attributs les méthodes mais on a aussi les constantes dont on a rien dit jusqu’ici !
Et bien c’est ce que nous allons voir tout de suite.
Il est possible de définir des valeurs constantes à l'intérieur d'une classe, qui ne seront pas modifiables d’ où leurs nom.
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, pas une variable, une propriété, le résultat d'une opération mathématique ou un appel de fonction.
Pour déclarer une constante, vous devez faire précéder son nom du mot-clé const comme suit :
Exemple : Copier le code
<?php class MaClass { const MACONSTANTE = valeur constante; function mafonction() { }?>
Contrairement aux attributs, vous ne pouvez accéder à la valeur d’une constante par l'opérateur -> depuis un objet (ni avec $this), car une constante appartient à la classe et non à un objet.
Pour accéder aux constantes, on utilise l'opérateur de résolution de portée :: .
L'opérateur de résolution de portée (aussi appelé Paamayim Nekudotayim) ou, en termes plus simples, le symbole "double deux-points" (::), fournit un moyen d'accéder aux membres constants ou statiques.
Ne vous préoccupez du membre statique nous allons le voir dans le chapitre suivant.
Exemple 1 : Accéder au membre constant en dehors de la définition de la classe
Exemple : Copier le code
<?php class MaClass { const CONST_VALUE = 'Une valeur constante'; } echo MaClass::CONST_VALUE; ?>
Exemple 2 : Accéder au membre constant depuis la définition de la classe
Pour accéder au membre constant depuis la défintion de la classe (c'est-à-dire de l'intérieur de la classe) on utlise le mot clé self avec l'operateur de résolution de portée ::
Exemple : Copier le code
<?php class MaClass { const CONST_VALUE = 'Une valeur constante'; const AUTRE_CONSTANTE = 50; public function fonction() { echo self::CONST_VALUE ."<br />" ; echo self::AUTRE_CONSTANTE ; } } //Lors de la création d'un objet $objet = new MaClass (); $objet->fonction(); ?>
Exemple 3 : Utilisez des constantes pour déterminer des limites supérieures et inférieures.
Si vous avez un code avec une entrée utilisateur ou vous voulez que la valeur saisie ne
dépasse pas une limite, vous pouvez utiliser des constantes pour fixer des limites
supérieures et inférieures. Comme dans l’exemple suivant :
Exemple : Copier le code
<?php class Dimension { const MIN = 0, MAX = 800; public $largeur, $hauteur; public function __construct($w = 0, $h = 0){ $this->largeur = self::clamp($w); $this->hauteur = self::clamp($h); } public function __toString(){ return "Dimension [largeur=$this->largeur, hauteur=$this->hauteur]"; } protected static function clamp($value){ if($value < self::MIN) $value = self::MIN; if($value > self::MAX) $value = self::MAX; return $value; } } echo (new Dimension()) . '<br>'; echo (new Dimension(1500, 97)) . '<br>'; echo (new Dimension(14, -20)) . '<br>'; echo (new Dimension(240, 80)) . '<br>'; ?>