[Résolu] static function : normalement pas appelables avec ->

static function : normalement pas appelables avec -> [Résolu] - PHP - Programmation

Marsh Posté le 17-07-2008 à 16:06:48    

Je lis sur php.net que A member or method declared with static can not be accessed with a variable that is an instance of the object et que Static properties cannot be accessed through the object using the arrow operator ->.
 
Pourtant je viens d'essayer ceci :  
 

Code :
  1. class MaClasse {
  2. // (... )
  3. // ici constructor et blabla
  4. // (... )
  5.  
  6. public static function TestFunction()
  7. {  return "tralala";
  8. }
  9. }
  10.  
  11. $classe  = new $MaClasse();
  12.  
  13. echo $classe->TestFunction(); // ouput bien "tralala".


 
Comment cela se fait-il ?


Message édité par ZeBix le 17-07-2008 à 16:43:29
Reply

Marsh Posté le 17-07-2008 à 16:06:48   

Reply

Marsh Posté le 17-07-2008 à 16:19:37    

on te dit que ce sont des static properties qui ne peuvent pas être accédées par ->, or toi c'est à une fonction statique que tu accèdes, pas à une property (= variable membre statique publique)


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 17-07-2008 à 16:21:09    

Harkonnen a écrit :

on te dit que ce sont des static properties qui ne peuvent pas être accédées par ->, or toi c'est à une fonction statique que tu accèdes, pas à une property (= variable membre statique publique)


 
Tu n'as pas lu la première partie de la phrase :)
 

Citation :

A member or method declared with static can not be accessed with a variable that is an instance of the object


 
C'est ce qui m'a fait penser que "property" était utilisé comme généralisation de tout "composant" d'une classe, que ce soit une variable ou une méthode ..


Message édité par ZeBix le 17-07-2008 à 16:22:31
Reply

Marsh Posté le 17-07-2008 à 16:35:38    

tu devrais lire la doc officielle ça t'eviterait ce genre de méprise:

Citation :

Declaring class members or methods as static makes them accessible without needing an instantiation of the class. A member declared as static can not be accessed with an instantiated class object (though a static method can).
...
Static properties cannot be accessed through the object using the arrow operator ->.

 

Donc l'explication d'Harko était on ne peut plus correcte :o


Message édité par anapajari le 17-07-2008 à 16:36:16

---------------
Software and cathedrals are much the same - first we build them, then we pray.
Reply

Marsh Posté le 17-07-2008 à 16:43:08    

tetcheu j'étais persuadé que j'étais sur php.net, je n'étais que sur un ersatz !  :cry:  
 
En fait l'extrait à mettre en gras dans la citation ce serait plutôt though a static method can
 
Voilà qui est clair.  
 
Merchi bieng  :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed