Vous pouvez accéder aux propriétés et aux méthodes d’une classe sans recourir aux objets avec l’opérateur de résolution de portée ::
Opérateur de résolution de portée ::
Il peut être utilisé avec le nom de la classe et non pas avec le nom de l’instance. Cet opérateur fait donc référence à la classe et non pas à l’objet (instance de classe).
class Voiture{
const NOMBREAIRBAG = 3;
public function demarrage(){
echo "La voiture de marque";
}
}
echo Voiture::NOMBREAIRBAG; // les :: s'applique à la classe Voiture
Affichage
3
On accède à la constante directement par la classe.
L’opérateur de résolution de portée peut s’employer aussi au sein de la classe avec les mots clés self, parent, static.
class Voiture{
const NOMBREAIRBAG = 3;
public function info(){
echo "La voiture possède ".self::NOMBREAIRBAG." airbags";
}
}
echo Voiture::info();
Affichage
La voiture possède 3 airbags
On accède à la constante dans la classe avec le mot clé self, qui représente la classe.
Contexte statique
Les méthodes et les propriétés statiques peuvent être consultées sans instancier d’objets directement à partir de la classe. Il faut les déclarer avec l’opérateur static.
Dans cet exemple, on créé une propriété static puis on l’appelle.
<?php
class Voiture{
const NOMBREAIRBAG = 3;
public static $constructeur = "Peugeot"; // propriété statique
private $marque = "peugeot";;
public function demarrage(){
echo "La voiture de marque".$this->marque." démarre";
}
}
echo Voiture::$constructeur;
?>
Affichage
Peugeot
Dans cet autre exemple, une méthode static est rajoutée puis appelée.
<?php
class Voiture{
const NOMBREAIRBAG = 3;
public static $constructeur = "Peugeot";
private $marque = "peugeot";
public function demarrage(){
echo "La voiture de marque".$this->marque." démarre";
}
public static function info(){ // méthode statique : info sur le fabriquant
echo "La voiture est fabriquée par ".self::$constructeur;
}
}
echo Voiture::info();
?>
Affichage
La voiture est fabriquée par Peugeot
Note : remarquez l’utilisation de self pour les appels de propriétés ou de méthodes statiques à l’intérieur de la classe.