Menu
Navigation
Accueil
À propos
À propos de moi
Contact
Me contacter
Suivez moi :
2011-06-06

Objet : accéder au grand parent en PHP

Share on Twitter Share on LinkedIn
TL;DR (IA)
  • En PHP, il est possible d’appeler directement une méthode de la “grand-mère” sans passer par la mère, grâce à un héritage ancien.
  • Cette technique permet de préserver le contexte de la classe fille tout en sautant un niveau d’héritage.
  • Découvrez un exemple simple et concret pour maîtriser cet accès, à utiliser avec modération !
Résumé généré par IA pour vous aider à survoler l’article.

S'il est courant de surcharger une méthode parente en PHP, il est plus rare d'accéder directement à la classe "grand -mère" sans passer par la mère. Pourtant... c'est possible, et voici comment :-)

En effet, un héritage de PHP 4 permet préserver le contexte d'exécution de la classe fille quand on appelle une classe parente en utilisant son nom plutôt que l'opérateur "parent" (qui n'existait pas avant). Un exemple tout simple :

class GrandMother {
    protected $_myVar = '5';

    public function doSomething() {
        echo "GrandMother, value is " . $this->_myVar;
    }
}

class Mother extends GrandMother {

    public function doSomething() {
        echo 'Mother, value is '; // Never called
    }
}

La classe fille n'utilise pas "parent", mais directement le nom de la classe grand-mère :

class Child extends Mother {

    public function doSomething() {
        $this->_myVar = '20';
        return GrandMother::doSomething();
    }
}

Il ne reste plus qu'à tester :

$oObject = new Child;
$oObject->doSomething();
// affiche "GrandMother, value is 20"

A utiliser avec précaution et modération ;-)

© Jean-François Lépine, 2010 - 2025