我有一系列密切相关的对象。在将对象添加到集合之前,我想检查类实例以确保它正常。
通常,我希望集合中的所有对象都具有类似的 baseClass OR 接口,因此我可以使用类型提示,但在这种情况下,对象不是那样的。
我喜欢这种instanceof
工作方式。我不想管理命名空间列表。
我有一系列密切相关的对象。在将对象添加到集合之前,我想检查类实例以确保它正常。
通常,我希望集合中的所有对象都具有类似的 baseClass OR 接口,因此我可以使用类型提示,但在这种情况下,对象不是那样的。
我喜欢这种instanceof
工作方式。我不想管理命名空间列表。
使用新的 5.4 [] for array() 语法 - 创建一个有效类名数组:
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.');
}
}