j'apprends PHP et je suis bloqué i le code suivant:PHP: Accès var protégé de la classe des enfants
<?php
class dogtag {
protected $Words;
}
class dog {
protected $Name;
protected $DogTag;
protected function bark() {
print "Woof!\n";
}
}
class poodle extends dog {
public function bark() {
print "Yip!\n";
}
}
$poppy = new poodle;
$poppy->Name = "Poppy";
$poppy->DogTag = new dogtag;
$poppy->DogTag->Words = "My name is
Poppy. If you find me, please call 555-1234";
var_dump($poppy);
?>
C'est ce que je suis:
PHP Fatal error: Uncaught Error: Cannot access protected property poodle::$Name
Cela semble étrange moi comme je devrais accéder à des vars et des fonctions protégés à partir de classes d'enfants.
Pourriez-vous s'il vous plaît quelqu'un expliquer où je me trompe?
Merci beaucoup.
Merci @Daan mais je ne suis pas sûr de l'avoir. Vous voulez dire que j'essaye d'y accéder à partir d'une instance ($ poppy) de la sous-classe et non de la définition de sous-classe (caniche de classe s'étend ...)? – S4rg0n
Cela signifie que vous n'accédez pas à l'intérieur de la classe de chien mais de l'extérieur. – Daan
Je suis vraiment désolé mais je ne comprends pas. J'essaie d'accéder à $ Name de la sous-classe caniche, qui hérite de la classe canine. Je crée une instance de poodle ($ poppy) et j'essaie de changer le nom var $ protected. Je comprends que je ne peux pas le faire avec un var privé mais $ Name est protégé. Donc comme $ poppy est une instance de classe caniche, je devrais pouvoir modifier la var du parent protégé. Merci pour votre patience. – S4rg0n