Problème POO


ortolojf
WRInaute passionné
WRInaute passionné
 
Messages: 1675
Inscription: 14 Aoû 2002

Problème POO

Message le Ven Jan 22, 2010 22:06

Bonsoir

Supposons une classe ( mettons classe1 ), et une autre classe ( classe2 ) dérivée de classe1, et qui surcharge une fonction example() membre de classe1.

La fonction example() surchargée dans classe2, rend false.

Est-ce que c'est la fonction example() de la classe classe1, qui sera appelée, si on instancifie classe2, et appelle example() ?

Code: Tout sélectionner
  class classe1 {

   private $tmp = 1;
   public example() {

    $tmp1++;
    return ($tmp);
  }
}

  class classe2 extends classe1 {

     public example() {

        return (false);

    }

}

  $x = new classe2;

  echo $x->example() . "<br />\n";;

  // Est-ce que la fonction classe1::example() va être appelée ( car example() surchargée rend false ), et afficher 2  ?



Merci beaucoup de vos réponses.

En fait, c'est pour surcharger la fonction rowCount() de la classe PDO, de telle manière qu'elle rende la fonction rowCount() de la classe père PDO quand cette fonction rowCount() surchargée, rend false.

J'ai lu un commentaire d'un Américain sur le PHP Manual, mais je ne suis pas sûr que rowCount() marche aussi pour les fonctions PDO::exec() , ou PDO::prepare() suivi de PDO::execute() , alors que cette fonction rowCount() est bien définie après ces fonctions, mais pas après la fonction PDO::query()

Bien à vous.

Amicalement.

Jean-François Ortolo

luccé
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 10
Inscription: 6 Nov 2009

Re: Problème POO

Message le Ven Jan 22, 2010 22:26

Bonsoir,

L'appel de la fonction example() de la classe2 renverra toujours faux.

Pour appeler example de la classe1 à partir de la classe2, il faut utiliser parent::example();


ortolojf
WRInaute passionné
WRInaute passionné
 
Messages: 1675
Inscription: 14 Aoû 2002

Re: Problème POO

Message le Ven Jan 22, 2010 22:46

luccé a écrit:Bonsoir,

L'appel de la fonction example() de la classe2 renverra toujours faux.

Pour appeler example de la classe1 à partir de la classe2, il faut utiliser parent::example();


Bonsoir luccé

Merci beaucoup de ta réponse. ;)

Maintenant, je sais comment compléter la classe MyPDO dérivée de la classe PDO, dans le commentaire donné par un Américain sur le PHP Manual.

Merci encore.

Bien à vous.

Amicalement.

Jean-François Ortolo


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités