特定のクラスのオブジェクトのすべてのインスタンスを取得したいと思います。
例えば:
class Foo {
}
$a = new Foo();
$b = new Foo();
$instances = get_instances_of_class('Foo');
$instances
またはのいずれかである必要がありますarray($a, $b)
(array($b, $a)
順序は関係ありません)。
プラスは、関数が要求されたクラスのスーパークラスを持つインスタンスを返す場合ですが、これは必須ではありません。
私が考えることができる1つの方法は、インスタンスの配列を保持する静的クラスメンバー変数を使用することです。クラスのコンストラクタとデストラクタで$this
、配列に追加または配列から削除します。これは、多くのクラスで実行する必要がある場合、かなり面倒でエラーが発生しやすくなります。