Accès à une classe
L'accès statique est un appel à une propriété de la classe (de la description de l'objet) sans recours à une instance. Il n'y a donc plus d'appel à l'objet courant ($this).
La syntaxe utilise l'opérateur ::
préfixé du nom de la classe et suffixé de la propriété à appeler.
<?php class Voiture { $var = "resultat"; private $var2; function methodeLocale() { return $this->var2; // attribut uniquement disponible dans un contexte d'instance } function methodeStatique() { echo "statique"; } } echo Voiture::methodeStatique(); // resultat echo Voiture::methodeLocale(); // erreur car fait appel à un attribut // uniquement disponible dans un contexte d'instance $v = new Voiture();// echo voiture->methodeLocale(); // var2 ?>Il est possible de déclarer explicitement le caractère statique d'un attribut ou d'un méthode à l'aide du mot clé
static
.
<?php class Voiture { static $var = "resultat"; static function methodeStatique() { echo "statique"; } } echo Voiture::methodeStatique(); // resultat echo Voiture::$var; // resultat ?>Pour faire appel à une autre propriété (attribut ou ressource) statique de la même classe, on utilisera le mot-clé
self
.
<?php class Voiture { static $var = "resultat"; static function methodeLocale() { echo self::$var; } } ?>