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

  • de faire référence à une fonction définie dans une super-classe à partir d'une classe héritant de cette dernière,
  • d'appeler des fonctions ou des variables statiques ou constantes, définies dans une classe avant l'instanciation de cette dernière dans le corps du programme.
NomClasse::UnMembre;

Les mots-clé self et parent associés à l'opérateur ::, permettent d'accéder respectivement aux membres de la classe en cours et de la classe parente (héritage).

parent::unMembre_ClasseParente;
self::unMembre_ClasseCourante;
class super_classe
{
  public const CONSTANTE = 10;
  public static variable = 'x';
  protected autre_variable;

  public function fonction()
  {
    echo "Blocs d'instructions de la fonction fonction()"
        . " dans la super-classe.";
  }
}
//Appel de la variable statique
de la classe 'super_classe'
echo super_classe::$variable;

//Appel de la constante
de la classe 'super_classe'
echo super_classe::CONSTANTE;

class nouvelle_classe extends super_classe
{
  public autre_variable;
  public function fonction()
  {
    //Appel de la fonction 'fonction' 
    de la classe 'super_classe'
    parent::fonction();
    //Appel de la variable d'instance 'autre_variable' 
    de la classe 'nouvelle_classe'
    echo self::$autre_variable;
    //Appel de la variable d'instance 'autre_variable' 
    de la classe 'super_classe'
    echo parent::$autre_variable;
    echo "Blocs d'instructions de la fonction fonction()"
        . " dans la nouvelle-classe.";
  }
  public function autre_fonction()
  {
    //Appel de la constante 'CONSTANTE' 
    de la classe 'super_classe'
    echo parent::CONSTANTE;
  }
}
Sommaire