あなたがやろうとしているのは、実行中のオブジェクトを追跡することだと思いますか?あなたの最終目標がここにあるのか正確にはわかりません。
おそらく、実行時にReflectionClassを探していますか?クラスが存在するかどうか、および拡張クラスが何であるかを判別できます。
また、あなたが目指しているのは、使用されているオブジェクトを追跡するオブジェクトファクトリのようです。それらのシングルトン、ファクトリ、および静的メンバー関数/変数の概念を調べてください。
これに関して:
class A
{
public function __construct()
{ print "A has been called";
}
}
クラスBがコンストラクターをオーバーライドする場合、Aのコンストラクターは呼び出されません。元:
class B extends A
{
public function __construct()
{ print "B has been called";
// parent::__construct(); /// would print out A has been called
}
}
ただし、コードでは、次のいずれかの方法でBがAのインスタンスであるかどうかを確認できます。
function doSomethingWithA(A $a)....
function doSmoethingWithA($a)
{
if($a instanceof A)
{
// blah
}
}
それが大いに役立つかどうかわからない。