Executer une fonction implémentée dans une class héritante

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Executer une fonction implémentée dans une class héritante

Re: Executer une fonction implémentée dans une class héritante

par d0m » 22 juin 2010, 13:47

salut,
après avoir testé ton code (simple copier-coller dans un fichier php), il s'avère que celui ci affiche bien "Hello World" et non "erreur".
Pour que ce code affiche "erreur", il faut implémenter la classe mère comme ceci :
class ClassParent
{
    function HelloWorld() {
        //implémentée dans la class enfant
        echo 'Erreur';
    }

    function SaySomething() {
        self::HelloWorld();
    }
}

Executer une fonction implémentée dans une class héritante

par JBzh » 22 juin 2010, 11:41

Bonjour,


Je souhaite exécuter une fonction appelée dans la class parent mais implémentée dans la class héritante.
Exemple :
class ClassParent
{
    function HelloWorld() {
        //implémentée dans la class enfant
        echo 'Erreur';
    }

    function SaySomething() {
        $this->HelloWorld();
    }
}

Class ClassEnfant extends ClassParent
{
    function HelloWorld() {
        echo 'hello world!';
    }
}

$foo = new ClassEnfant();
$foo->SaySomething();
Ce qui m'affiche 'Erreur', au lieu du 'hello world' que j'aimerai avoir. J'avais pensé à un child::HelloWorld() à la place du $this->HelloWorld() mais je ne trouve pas de documentation sur child::
Un coup de main :) ?