Вы можете использовать get_parent_class
:
class A {}
class B extends A {
public function test() {
echo get_parent_class();
}
}
$b = new B;
$b->test(); // A
Это также будет работать, если B::test
является статическим.
ПРИМЕЧАНИЕ. Существует небольшая разница между использованием get_parent_class
без аргументовпротив передачи $this
в качестве аргумента.Если мы расширим приведенный выше пример с помощью:
class C extends B {}
$c = new C;
$c->test(); // A
Мы получим A
в качестве родительского класса (родительский класс B, где вызывается метод).Если вы всегда хотите, чтобы ближайший родительский объект для тестируемого вами объекта, вы использовали вместо него get_parent_class($this)
.