L'opérateur de résolution de portée (::) Vs Accesseur ->

Signaler
Messages postés
108
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
10 mars 2011
-
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
-
Bonjour,
Ma question sera peut etre assez naive, mais je ne cerne pas trop l'utilité de L'opérateur de résolution de portée (::).
sur Le manual PhP on spécifie que ce dernier permet d'acceder au methode static d'une classe. Quelle est la différence avec l'instruction MaClasse->maFonction()??? qui marche aussi tres bien en static !!!

cordialemenr

> MaEl <

1 réponse

Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
18
Salut,

Une méthode statique n'est pas liée à une instance d'une classe, mais à la classe elle-même.
Dans une méthode statique, le mot clé $this n'est pas utilisable.
De même, une propriété statique n'est pas liée à une isntance, mais à la classe elle même.
Le :: est aussi utilisé pour accéder à une constante de classe :

class MaClasse {
    const BIDULE = 'Truc';
}
echo MaClasse::BIDULE;


Quelle est la différence avec l'instruction MaClasse->maFonction()??? qui marche aussi tres bien en static !!!

Euh... Tu peux donner un exemple de code qui fonctionne chez toi, parce que j'ai comme un doute (en fait, non, aucun doute : ça ne fonctionne pas du tout, je viens de tester... je suis donc curieux de savoir quel code tu exécutes pour ça...). Sur quelle version de PHP est-ce que tu fais tes tests ?

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)