Вот пример того, что происходит, когда метод класса вызывается неправильно. Вы увидите некоторые предупреждения, когда выполните этот код, но он сработает и выведет: «I'm A: печать свойства B». (Выполнено в php5.6)
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();
Это показывает, что переменная $ this, используемая в методе, который вызывается как статический метод, указывает на экземпляр класса "вызывающего". В приведенном выше примере в классе A используется свойство $ this->, которое указывает на свойство класса B.
EDIT:
Псевдопеременная $ this доступна, когда метод вызывается из контекста объекта. $ это ссылка на вызывающий объект ( обычно это объект, которому принадлежит метод, но, возможно, другой объект, если метод вызывается статически из контекста вторичного объекта ).
PHP> Основы