【发布时间】:2016-12-14 04:45:57
【问题描述】:
假设我有一个 Product 类,我如何告诉 PHP 我只想接受 Product 的数组?
换句话说,有没有办法做类似这种方法的事情?:
private function method(Product[] $products)
{
// ...
}
我想过做这样的事情:
private function validate($products)
{
foreach ($products as $product)
if (!is_a($product, 'Product')
return false;
// ...
}
它可以工作,但我不喜欢这种添加一堆行只是为了确保它是“Product[]”的想法。
【问题讨论】:
-
因为没有类型化的数组,所以也没有这样的东西。如果您首先为产品列表创建自己的类,您也许可以实现它。然后可以在类型提示参数中使用该类,并且该类本身必须确保只能将产品添加到其内部数据数组中。