Ich habe einige Probleme bei der Erweiterung von Klassen in PHP. Habe schon eine Weile gegoogelt.
$a = new A();
$a->one();
$a->two();
// something like this, or...
class A {
public $test1;
public function one() {
echo "this is A-one";
$this->two();
$parent->two();
$parent->B->two();
// ...how do i do something like this (prepare it for using in instance $a)?
}
}
class B extends A {
public $test2;
public function two($test) {
echo "this is B-two";
}
}
Ich bin gut in prozeduralem PHP.
1 Stimmen
Können Sie genau erklären, was Sie zu erreichen hoffen, wenn Sie fertig sind? Es sieht so aus, als ob Sie vielleicht versuchen, mit der Vererbung etwas zu erreichen, wofür sie nie gedacht war....
0 Stimmen
Hallo, danke. - ich möchte auf die Funktion two() von der Instanz a zugreifen. - möchte, dass $this-> in allen Klassen auf die Instanz a verweist. (+ hat den dritten Befehl bearbeitet) ist das eine Beschreibung, mit der man etwas anfangen kann? Danke, Frank
2 Stimmen
Das ist nicht die Art der Vererbung/
extends
funktioniert, Fffff.class B extends A
definiert eine neu Klassentyp,B
die alle Funktionen von A hat, aber auch alle neuen Dinge, die Sie zuB
. Es macht nichtA
mehr Dinge drin haben.0 Stimmen
Was bedeuten die Erweiterungen dann für den Zugang zu ihnen?
2 Stimmen
Man "greift" nicht auf sie zu, sondern erstellt ein Objekt des Typs
B
.$b = new B();
そして$b
haben sowohl$b->one()
y$b->two()
dennB
erbt dieone()
Methode vonA
und fügt außerdem einetwo()
Methode fürB
nur Objekte.0 Stimmen
Sie sollten sich den Wikipedia-Artikel über OOP-Vererbung durchlesen: de.wikipedia.org/wiki/Vererbung_(objektorientierte_Programmierung)
0 Stimmen
Ich glaube, Sie lesen extends falsch. Klasse B extends A bedeutet "B ist alles, was A ist, und noch ein bisschen mehr (was ich weiter unten definiere)", also ist B eine Erweiterung von A (oder B extends A)