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;
}
}
?>