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

cs_mael974 Messages postés 108 Date d'inscription jeudi 2 juin 2005 Statut Membre Dernière intervention 10 mars 2011 - 18 janv. 2010 à 11:57
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 - 18 janv. 2010 à 13:03
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

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
18 janv. 2010 à 13:03
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à ;)
0
Rejoignez-nous