У меня есть объект PHP, который состоит из набора классов. Для простоты давайте назовем его объектом класса C, который расширяет класс B, который, в свою очередь, расширяет класс A. В какой-то момент в моем коде я хочу очистить объект, вызвав его функцию doCleanup (), которую он наследует от интерфейса I :
interface I { public function doCleanup(); }
class A implements I { ... }
class B extends A { ... }
class C extends B implements I { ... }
В функции doCleanup класса C я также хочу выполнить любую функцию очистки в моих родительских классах (в данном случае doCleanup () в классе A). Однако для некоторых объектов я не уверен, реализует ли какой-либо родительский класс интерфейс I, поэтому я не уверен, могу ли я просто вызвать parent::doCleanup()
.
Поэтому мой вопрос: есть ли способ проверить, реализует ли кто-нибудь из моих предков интерфейс, например, с помощью какого-то вызова instanceof
?