0

密接に関連するオブジェクトのコレクションがあります。オブジェクトをコレクションに追加する前に、クラス インスタンスをチェックして問題がないことを確認します。

通常、コレクション内のすべてのオブジェクトが同様の baseClass OR インターフェースを持っているのが好きなので、型ヒントを使用できますが、この場合、オブジェクトはそうではありません。

私はinstanceof働き方が好きです。名前空間のリストを管理する必要はありません。

4

1 に答える 1

0

array() 構文に新しい 5.4 [] を使用 - 有効なクラス名の配列を作成します。

private $validClasses = ['MyFirstClass','MySecondClass','MyThirdClass'];

次に、テストする関数を作成します。

public function testClass($class){
    $arr = explode("\\", get_class($class) );
    if ( !in_array( array_pop($arr) , $this->validClasses  ) ){
    throw new \Exception('Invalid Class - Cannot be added to the Collection.');
     }
}
于 2012-12-07T15:33:17.730 に答える