クラスのセットで構成されるPHPオブジェクトがあります。簡単にするために、クラスBを拡張するクラスCのオブジェクトと呼び、次にクラスAを拡張します。コードのある時点で、インターフェイスIから継承するdoCleanup()関数を呼び出してオブジェクトをクリーンアップしたいと思います。 :
interface I { public function doCleanup(); }
class A implements I { ... }
class B extends A { ... }
class C extends B implements I { ... }
クラスCIのdoCleanup関数で、親クラス(この場合はクラスAのdoCleanup())のクリーンアップ関数も実行したいと考えています。ただし、一部のオブジェクトでは、親クラスのいずれかが実際にインターフェイスIを実装しているかどうかわからないため、単純にを呼び出すことができるかどうかはわかりませんparent::doCleanup()
。
したがって、私の質問は、たとえば、ある種のinstanceof
呼び出しを使用して、私の祖先のいずれかがインターフェースを実装しているかどうかを確認する方法があるかどうかです。