假设我在类的构造函数中对一系列值进行接口类型提示:
<?php
use Interfaces\Item;
class MyClass
{
public function __construct(Item ...$items)
{
// Do stuff
}
}
我可以很容易地手动传递这些项目:
$myclass = new MyClass($item1, $item2);
但我很难让它更加动态化-以下代码无法工作,因为它期望接收多个Item
实例,而不是一个数组,所以会引发TypeError
错误:
$items = [
$item1,
$item2
];
$myclass = new MyClass($items);
我想不到一种动态构建所需传递项的方法,而不改变它以期望一个数组,并且我不愿意这样做,因为类型提示显然会捕获任何不应通过的对象。有人能看出我如何实现吗?