在类中定义构造函数时,我最初有类似的东西:
public function __construct(MyClass $class){ ... }
但是我希望能够接受一组MyClasses,你怎么能在构造函数中定义它?
干杯
答案 0 :(得分:2)
不是严格的类型转换,但会强制执行您正在寻找的内容。
public function __construct(array $classes){
foreach($classes as $inst){
if(!($inst instanceof ClassName)){
trigger_error('Array of objects passed to constructor must contain instances of ClassName', E_USER_ERROR);
}
//perform actions
}
}
答案 1 :(得分:0)
您只能这样指定一种类型。
所以,一个对象,MyClass
的实例:
public function __construct(MyClass $class){ ... }
或array
:
public function __construct(array $data){ ... }
但是您无法指定您的方法只接受array
MyClass
- 这意味着您必须自己检查接收到的数组中的数据类型,在第二种情况下
答案 2 :(得分:0)
将$ class转换为数组。
public function __construct($class = array()) { }
或
public function __construct(array $class) { }
进一步:
foreach($class as $instance) {
if(!$instance instanceof MyClass) { return false; }
}