Opérateur de résolution de portée (::)

PHP cours tutorial

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.

Constantes de classe

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 :

Sélectionner le code

  <?php
  class MaClass
  {
    const MACONSTANTE = valeur constante;
    function mafonction() {
   }?>

 

L'opérateur de résolution de portée ::

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

Sélectionner 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 ::

Sélectionner 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 :

Sélectionner 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>';
   
  ?>

 


Par carabde 20 Aout 2014

  • Trafic Booster
    hebergement web

    SCREEBER - Logiciel de copywriting

    SCREEBER - Logiciel de copywriting Augmentez vos résultats en rejoignant les 1600 entrepreneurs qui utilisent Screeber®, le seul logiciel de Copywriting (en français) qui rédige avec vous des textes de vente qui convertissent


    HTML5, CSS3, JavaScript pour débutants Tome 1
    HTML5, CSS3, JavaScript
    pour débutants Tome 1

    Premier tome d'une série vidéo dédiée à l'apprentissage des langages HTML, CSS et JavaScript.

    Regarder aussi nos cours :

    Introduction où mettre du CSS ?

    Le Langage CSS (Cascading Style Sheets ) est le format utilisé pour décrire la présentation de documents HTML...

    fonction sprintf

    Retourne une chaîne format e

    Balise noscript

    Définit un autre contenu pour les utilisateurs qui ne supportent pas les scripts côté client



    Rentabilisez efficacement votre site