【发布时间】:2018-02-12 14:34:45
【问题描述】:
在我的一些设置器中,我传递了一个对象数组。我想确保它只包含给定类的实例。阅读文档,这就是我所做的:
class Foo
{
public function __construct()
{
}
}
class ErrorFoo
{
public function __construct()
{
}
}
$arrayObject = Array();
array_push($arrayObject, new Foo());
array_push($arrayObject, new Foo());
array_push($arrayObject, new ErrorFoo());
$error = false;
foreach ($arrayObject as $obj)
{
if ( $obj instanceof Foo )
{
echo "ok" . '<br>';
}
else
{
echo "error" . '<br>';
$error = true;
}
}
你知道比这样遍历数组更简单的方法吗?
【问题讨论】:
-
不确定是否总是设置
$error= true;有帮助。 -
oups,更正
-
作为 setter 函数的一部分,您可以验证传递的对象类型吗?如果类型与您想要的不匹配,则抛出异常。这样做将确保在任何 getter 中返回的对象都是预期的类型。
-
@Goon3r 如果我传递一个数组作为参数,那么传递的对象类型是数组,不是吗?