Comment accéder aux variables de classe parent en PHP

Mary-Kate Olsen
Libérer: 2024-10-22 23:48:28
original
1004 Les gens l'ont consulté

How to Access Parent Class Variables in PHP

Accéder à la variable de classe parent en PHP

En programmation orientée objet, accéder à la variable de classe parent au sein d'une classe enfant peut présenter un défi. Considérez le code ci-dessous :

<code class="php">class A {
    private $aa;
    protected $bb = 'parent bb';

    // ...
}

class B extends A {
    function childfunction() {
        echo parent::$bb; // Fatal error: Undefined class constant 'bb' 
    }
}
</code>
Copier après la connexion

Tenter d'accéder à la variable $bb à l'aide de parent::$bb entraîne une erreur. En effet, la variable est protégée et les variables protégées ne sont accessibles qu'au sein de la classe et de ses classes enfants.

Solution : Utiliser $this->bb

Pour accédez correctement à la variable $bb dans la classe enfant, utilisez $this->bb. Cette syntaxe fait référence à la variable d'instance de l'objet actuel, qui inclut les variables héritées de la classe parent.

<code class="php">echo $this->bb;</code>
Copier après la connexion

La variable $bb est héritée et n'est pas privée, elle fait donc partie de l'objet actuel et peut accessible à l'aide du mot-clé $this.

Informations supplémentaires

Pour les situations où vous devez modifier le comportement d'une méthode de la classe parent, utilisez parent ::. Par exemple, considérons ce qui suit :

<code class="php">class Airplane {
    private $pilot;

    public function __construct( $pilot ) {
        $this->pilot = $pilot;
    }
}

class Bomber extends Airplane {
    private $navigator;

    public function __construct( $pilot, $navigator ) {
        $this->navigator = $navigator;

        parent::__construct( $pilot ); // Assign to this->pilot
    }
}</code>
Copier après la connexion

Ici, parent:: étend le constructeur de la classe Airplane pour ajouter la variable $navigator. Cela vous permet de suivre le principe DRY tout en offrant la fonctionnalité souhaitée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal