W PHP nie raz zachodzi potrzeba przechowywania w obiekcie tablicy obiektów określonego typu, np. w kolekcjach, managerach strategii, itp. Jeśli lista obiektów jest przekazywana w konstruktorze to warto sprawdzić czy są właściwego typu. Przykładowy konstruktor może wyglądać tak:
/**
* @param Item[] $items
* @throws InvalidArgumentException
*/
public function __construct(array $items)
{
foreach ($items as $item) {
if (!$item instanceof Item) {
throw new InvalidArgumentException('Collection accepts only instances of Item');
}
}
$this->items = $items;
}
Ten sam efekt można osiągnąć prościej dzięki zastosowaniu operatora … (trzy kropki):
public function __construct(Item ...$items)
{
$this->items = $items;
}