Nom d'une classe membre

Petit nouveau ! | 3 Messages

20 févr. 2009, 18:26

Bonjour tout le monde,

un p'tit soucis et je ne parviens pas à trouver de réponse, donc si quelqu'un pouvait m'aider, ca serait super ^^

soit une classe A avec une fonction "fonctionA()"
soit une classe B extends de la classe A


Comment fait pour que quand je fait B->fonctionA() je puisse connaitre au sein de la fonction le nom de la classe B ?


un bout de code qui sera peut etre plus clair:

Code : Tout sélectionner

class classA { function maFonctionA() { echo __CLASS__; } } class classB extends classA { function nesertàriendanslexemple() { } } $oMaClass = new classB; $oMaClass->maFonctionA();

Si j'execute ce code, la chaine retournée sera "classA" or moi je voudrais que ce soit "classB", comment faire svp ?

merci de votre aide

ViPHP
ViPHP | 3607 Messages

20 févr. 2009, 22:58

Un truc comme ça, en surchargeant la fonction...?:
class classA {

    function maFonctionA() {

          echo "classemère:". __CLASS__;

    }

}


class classB extends classA {

      function nesertàriendanslexemple() {

      }

 function maFonctionA() {
          parent::maFonctionA();
          echo"classe fille:". __CLASS__;

    }

}


$oMaClass = new classB;
$oMaClass->maFonctionA(); 

Invité
Invité n'ayant pas de compte PHPfrance

20 févr. 2009, 23:31

oui, ou en mettant une propriété a la classe A que je set avec la valeur de __CLASS__ dans le construct de la classe B, ca marche aussi, mais ca m'embète de devoir mettre quelque chose dans la classe B. Je vais avoir beaucoup de classe B (ce sont mes "modeles" sur mon MVC, et j'aurai préféré que dedans il n'y ai que des méthodes d'accès au données.