Hier ist ein Beispiel dafür, was passiert, wenn eine Methode einer Klasse falsch aufgerufen wird. Sie werden einige Warnungen sehen, wenn Sie diesen Code ausführen, aber er wird funktionieren und Folgendes ausgeben: "Ich bin A: B-Eigenschaft drucken". (In php5.6 ausgeführt)
class A {
public function aMethod() {
echo "I'm A: ";
echo "printing " . $this->property;
}
}
class B {
public $property = "B property";
public function bMethod() {
A::aMethod();
}
}
$b = new B();
$b->bMethod();
Es scheint, dass die Variable $ this, die in einer Methode verwendet wird, die als statische Methode aufgerufen wird, auf die Instanz der Klasse "caller" verweist. Im obigen Beispiel wird in der A-Klasse die Eigenschaft $ this-> verwendet, die auf eine Eigenschaft des B verweist.
BEARBEITEN:
Die Pseudovariable $ this ist verfügbar, wenn eine Methode aus einem Objektkontext heraus aufgerufen wird. $ Dies ist eine Referenz auf das aufrufende Objekt ( normalerweise das Objekt, zu dem die Methode gehört, aber möglicherweise ein anderes Objekt, wenn die Methode statisch aus dem Kontext eines sekundären Objekts aufgerufen wird ).
PHP> Die Grundlagen