0

我有一系列密切相关的对象。在将对象添加到集合之前,我想检查类实例以确保它正常。

通常,我希望集合中的所有对象都具有类似的 baseClass OR 接口,因此我可以使用类型提示,但在这种情况下,对象不是那样的。

我喜欢这种instanceof工作方式。我不想管理命名空间列表。

4

1 回答 1

0

使用新的 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.');
     }
}
于 2012-12-07T15:33:17.730 回答