Méthodes statiques

Résolu
mentral Messages postés 56 Date d'inscription jeudi 29 mai 2003 Statut Membre Dernière intervention 22 janvier 2008 - 12 juil. 2006 à 08:38
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 - 13 juil. 2006 à 11:13
Bonjour.

Voici une question d'ordre général : à quoi servent les méthodes statiques en php ? N'étant pas sûr du terme, en voici un exemple :

maClasse::maMéthode()

J'ai l'habitude d'utiliser mes classes de la façon suivante : maClasse->maMéthode() après une instanciation. Où se situe la différence ? Et surtout, quel est l'intérêt des méthodes statiques mis à part le fait de "gagner une ligne" de code en omettant l'instanciation ? Dans quel cas sont-elles les bienvenues par rapport aux méthodes dynamiques ?

Je me pose cette question depuis que je commence à lire le code de frameworks et de CMS opensource existants ; c'est là que j'ai découvert cette syntaxe.

Merci.

[ NemetraL ]
A voir également:

8 réponses

Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 6
12 juil. 2006 à 12:39
tout a fait d'accord PaDa, sauf pour les denomination dont je n'ai aucune idée.

On peut assimiler une classe à un modele. L'exemple des poules qui ma bcp fait rire, mais je vais plutot prendre les hommes. On peut voir la chose comme ca:

un homme est caracterisé par:
    Couleur de cheveux,
    Couleur des yeux,
    taille,
    sexe,
    ...

l'interet de creer une classe pour les hommes, c'est que tu as beaucoup d'hommes et qu'ils ont tous une couleur de cheveux, ..., mais ce n'est pas tous la meme.
L'autre interet, c'est que tu peu y ajouter des methodes propres aux hommes, comme par exemple une fonction grand() qui te retourne si l'homme est grand, mais l'implementation est unique a tous les hommes.
Encore un autre interet est l'heritage. tu peu creer 2 autres classes Male et Femelle qui heritent de homme, et qui auront donc une couleur de cheveux, ... sans que tu ai besoin de les redeclarer. Et tu peu en plus ajouter d'autres champs/methodes tels que CouleurRougeALevre, ...

Pour resumer, les classes sont utiles si tu doit instancier plusieurs objets d'un meme modele, ou des objets dont le modele est l'extension d'un autre.
Les fonctions statiques (pas statiques de classe mais statique unique, c'est a dire propre a aucune classe) sont utiles pour des traitements simples independants d'objets. par exemple, une fonction "Carre" qui met un nombre au carre n'a rien a faire dans une classe, ou alors dans une classe "Math", juste pour la lisibilité.

j'espere t'avoir eclairé plus qu'embrouillé ;)
3
Rejoignez-nous