C'est exactement ça. Et on utilise ça par exemple lorsqu'on utilise le pattern Singleton. Le principe du Sungleton est une méthode qui ne permet d'avoir qu'une seule instance d'une classe donnée. Pour ce faire, on a un constructeur privé : on ne peut donc pas appeler le constructeur depuis l'exétieur de la classe avec new : pour créer une instance de classe, il faut donc passer par une méthode statique qui va vérifier si une instance existe déjà et retourner cette instance ou bien la créer si elle n'existe pas.Ah donc si je déclare dans une classe une fonction en static, je pourrais accéder à cette fonction sans avoir à instancier ma classe ?
C'est ça ?
Mais dans quel but on pourrait avoir besoin d'accéder à une fonction d'une classe sans la déclarer ?
Classe::methode();
Je peux toujours utiliser cette écriture
$instance = new Classe();
$instance->methode();mais cela perd en cohérence puisque ma methode n'est pas spécifiquement liée à mon instance, et retournera toujours le même résultat quelle que soit l'instance.
Code : Tout sélectionner
class maclasse
{
...
static private function ma_fonction{
}
....
}