Zugriff auf eine Eltern-Variablen von der Unterklasse, php und übergeordnetes Schlagwort?
Ich habe eine Oberklasse und eine Unterklasse, die die übergeordnete Klasse hat eine constructer, setzt ein var
und ich möchte, dass var
in der Unterklasse, ich habe es die Arbeit aber bin immer verwirrt durch das Schlüsselwort parent
?
Beispiel
class Sub extends Parent {
public function foo() {
echo $this -> myVar;
}
}
class Parent {
var $myVar;
public function __construct() {
$this -> myVar = 'a';
}
}
Klappte dies und ich bekommen den Wert myVar
, aber soll ich mit dem keyword parent
und wenn ich das mache bekomme ich eine Fehlermeldung, Beispiel,
class Sub extends Parent {
public function foo() {
echo parent -> myVar;
}
}
class Parent {
var $myVar;
public function __construct() {
$this -> myVar = 'a';
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
First off, ein Elternteil ist ein reserviertes Wort. Sekunde aus, nicht verwenden
var
es sei denn, Sie verwenden eine ältere version von PHP. Sie verwenden können, geschützt. Sie nicht brauchen, um verwenden Sie die parent-Schlüsselwort, um den Zugriff auf die variable, da die Kind-Klasse erbt es. Sie können auf es über$this->myVar
BEARBEITEN zu klären
Müssen Sie nur
parent::
beim Zugriff auf Methoden der Basisklasse oderstatic
Variablen der Basisklasse. Wenn Sie versuchen, auf eine nicht statische variable der Basisklasse, erhalten Sie eine FehlermeldungAccess to undeclared static property" fatal error:
Hier ist ein Beispiel, um Ihnen den Einstieg.
Hier ein funktionierendes Beispiel dieses Codes.
parent
wenn accesing der übergeordneten Klasse? Wie kommt es, dass ich nicht haben, um es hier zu verwenden? Danke nochmal buddyparent::
beim Zugriff auf Methoden der Basisklasse oder statische Variablen der Basisklasse. Wenn Sie versuchen, auf eine nicht statische variable der Basisklasse, erhalten Sie eine FehlermeldungAccess to undeclared static property" fatal error:
Bitte markieren Sie diese als beantwortet, wenn diese Antwort dir geholfen 🙂Stichwort
parent
sollte verwendet werden, um auf Methoden oder statische Variablen der übergeordneten Klasse nur, so der erste code ist die richtige, da$myVar
ist nicht statisch.Versuchen Sie dies :