密接に関連するオブジェクトのコレクションがあります。オブジェクトをコレクションに追加する前に、クラス インスタンスをチェックして問題がないことを確認します。
通常、コレクション内のすべてのオブジェクトが同様の baseClass OR インターフェースを持っているのが好きなので、型ヒントを使用できますが、この場合、オブジェクトはそうではありません。
私はinstanceof
働き方が好きです。名前空間のリストを管理する必要はありません。
密接に関連するオブジェクトのコレクションがあります。オブジェクトをコレクションに追加する前に、クラス インスタンスをチェックして問題がないことを確認します。
通常、コレクション内のすべてのオブジェクトが同様の baseClass OR インターフェースを持っているのが好きなので、型ヒントを使用できますが、この場合、オブジェクトはそうではありません。
私はinstanceof
働き方が好きです。名前空間のリストを管理する必要はありません。
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.');
}
}