我收集了一些密切相关的对象。在我向集合添加Object之前,我想检查类实例以确保它没问题。
通常,我喜欢集合中的所有对象都有类似的baseClass OR接口,所以我可以使用类型提示,但在这种情况下,对象不是那样的。
我喜欢instanceof
的工作方式。我不想管理名称空间列表。
答案 0 :(得分: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.');
}
}