Table des matières
Accès aux variables de classe parent en PHP
Maison développement back-end tutoriel php Comment accéder aux variables de classe parent protégées dans les sous-classes PHP ?

Comment accéder aux variables de classe parent protégées dans les sous-classes PHP ?

Oct 23, 2024 am 12:44 AM

How to Access Protected Parent Class Variables in PHP Subclasses?

Accès aux variables de classe parent en PHP

Dans la programmation orientée objet, les classes enfants héritent des propriétés et des méthodes de leurs classes parents. Cependant, accéder aux variables de la classe parent directement au sein de la classe enfant peut parfois présenter des défis.

Considérez l'extrait de code suivant où la classe B étend la classe A :

<code class="php">class A {
    private $aa;
    protected $bb = 'parent bb';
    function __construct($arg) {}
    private function parentmethod($arg2) {}
}

class B extends A {
    function __construct($arg) {
        parent::__construct($arg);
    }
    function childfunction() {
        echo parent::$bb; //Fatal error: Undefined class constant 'bb' 
    }
}

$test = new B($some);
$test-&gt;childfunction();</code>
Copier après la connexion

Question :

Pourquoi la ligne fait-elle écho à parent::$bb; entraîner une erreur fatale ? Comment pouvons-nous accéder à la variable parent $bb dans la classe enfant ?

Réponse :

L'erreur se produit car $bb est une propriété protégée de la classe A, et protégée les propriétés ne sont pas accessibles directement depuis l'extérieur de la classe ou des sous-classes en utilisant la syntaxe parent ::. Au lieu de cela, nous pouvons accéder à $bb en utilisant la syntaxe suivante :

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

Explication :

Le mot-clé $this fait référence à l'objet actuel. Puisque $bb est hérité par la classe B et devient une partie de l'objet actuel, nous pouvons y accéder en utilisant $this. Cette syntaxe accède efficacement à la variable héritée comme s'il s'agissait d'une propriété de la classe enfant.

Informations supplémentaires sur parent::

La syntaxe parent:: est utilisée pour accéder aux méthodes ou aux propriétés de la classe parent depuis la classe enfant. Il est généralement utilisé lorsque vous souhaitez remplacer une méthode de la classe parent ou y ajouter des fonctionnalités supplémentaires.

Par exemple, considérons le code suivant :

<code class="php">class Airplane {
    private $pilot;
    public function __construct( $pilot ) {
        $this-&gt;pilot = $pilot;
    }
}

class Bomber extends Airplane {
    private $navigator;
    public function __construct( $pilot, $navigator ) {
        $this-&gt;navigator = $navigator;
        parent::__construct( $pilot ); // Calls the parent constructor
    }
}</code>
Copier après la connexion

Dans ce cas, le La méthode __construct() de la classe Bomber remplace la méthode __construct() du parent, mais l'utilise toujours pour initialiser la propriété pilote.

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!

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

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

11 meilleurs scripts de raccourcissement d'URL PHP (gratuit et premium) 11 meilleurs scripts de raccourcissement d'URL PHP (gratuit et premium) Mar 03, 2025 am 10:49 AM

11 meilleurs scripts de raccourcissement d'URL PHP (gratuit et premium)

Introduction à l'API Instagram Introduction à l'API Instagram Mar 02, 2025 am 09:32 AM

Introduction à l'API Instagram

Travailler avec les données de session Flash dans Laravel Travailler avec les données de session Flash dans Laravel Mar 12, 2025 pm 05:08 PM

Travailler avec les données de session Flash dans Laravel

Misque de réponse HTTP simplifié dans les tests Laravel Misque de réponse HTTP simplifié dans les tests Laravel Mar 12, 2025 pm 05:09 PM

Misque de réponse HTTP simplifié dans les tests Laravel

Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API REST Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API REST Mar 14, 2025 am 11:42 AM

Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API REST

Construisez une application React avec un Laravel Back End: Partie 2, React Construisez une application React avec un Laravel Back End: Partie 2, React Mar 04, 2025 am 09:33 AM

Construisez une application React avec un Laravel Back End: Partie 2, React

12 meilleurs scripts de chat PHP sur Codecanyon 12 meilleurs scripts de chat PHP sur Codecanyon Mar 13, 2025 pm 12:08 PM

12 meilleurs scripts de chat PHP sur Codecanyon

Notifications à Laravel Notifications à Laravel Mar 04, 2025 am 09:22 AM

Notifications à Laravel

See all articles