L'accès à une les parents variable de la sous-classe php et mot-clé parent?
J'ai une classe mère et une sous-classe, le parent de la classe a un constructeur qui définit un var
et je voudrais l'utiliser var
dans la sous-classe, je travail, mais je suis confus par le mot-clé parent
?
Exemple
class Sub extends Parent {
public function foo() {
echo $this -> myVar;
}
}
class Parent {
var $myVar;
public function __construct() {
$this -> myVar = 'a';
}
}
Cela a fonctionné et j'obtiens la valeur de myVar
, mais je suis censé être en utilisant le mot-clé parent
et quand je le fais, j'obtiens une erreur, par exemple,
class Sub extends Parent {
public function foo() {
echo parent -> myVar;
}
}
class Parent {
var $myVar;
public function __construct() {
$this -> myVar = 'a';
}
}
OriginalL'auteur hadley | 2012-06-01
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, le Parent est un mot réservé. Ensuite, ne pas utiliser de
var
sauf si vous utilisez une ancienne version de PHP. Vous pouvez utiliser protégé. Vous n'avez pas besoin d'utiliser le mot-clé parent d'accéder à la variable parce que l'enfant de la classe doit hériter. Vous pouvez y accéder via$this->myVar
MODIFIER de clarifier
Vous avez seulement besoin d'utiliser
parent::
lors de l'accès aux méthodes de la classe de base oustatic
variables de la classe de base. Si vous essayez d'accéder à un non statique de la variable de la classe de base, vous obtiendrez un message d'erreurAccess to undeclared static property" fatal error:
Voici un exemple pour vous aider à démarrer.
Voici un exemple de travail de ce code.
Pourquoi est-il indiqué dans le manuel d'utiliser le mot-clé
parent
lors de l'accès aux parent de la classe? Comment se fait-je n'ai pas à l'utiliser ici? Encore merci copainVous avez seulement besoin d'utiliser
parent::
lors de l'accès aux méthodes de la classe de base, ou de variables statiques de la classe de base. Si vous essayez d'accéder à un non statique de la variable de la classe de base, vous obtiendrez un message d'erreurAccess to undeclared static property" fatal error:
Veuillez cocher ce que répondre si cette réponse vous a aidé 🙂Merci je comprends maintenant 🙂
OriginalL'auteur aziz punjani
Mot-clé
parent
doit être utilisé pour les méthodes d'accès ou statique variables de la classe parent seul, de sorte que votre premier code est le bon, puisque$myVar
n'est pas statique.OriginalL'auteur Furgas
Essayez ceci :
OriginalL'auteur Austin