PHP测试数组实例中是否存在类实例

时间:2012-12-07 15:33:18

标签: php

我收集了一些密切相关的对象。在我向集合添加Object之前,我想检查类实例以确保它没问题。

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

我喜欢instanceof的工作方式。我不想管理名称空间列表。

1 个答案:

答案 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.');
     }
}