Функции с переменным числом аргументов и подсказка типов в PHP

Быстрый:

Есть ли способ принудительно применять типы для вариативных функций в PHP? Я предполагаю, что нет, но, может быть, я что-то упустил.

На данный момент я просто принудительно использую один обязательный аргумент нужного типа и повторяю, чтобы проверить остальные.

public function myFunction(MyClass $object){
    foreach(func_get_args() as $object){
        if(!($object instanceof MyClass)){
            // throw exception or something
        }
        $this->_objects[] = $object;
    }
}

Есть ли лучшие решения?


Цель:

Объект-контейнер, который действует как повторяющийся список дочерних объектов с некоторыми вспомогательными функциями. вызов его с помощью конструктора с переменным числом аргументов будет примерно таким:

// returned directly from include
return new MyParent(
    new MyChild($params),
    new MyChild($params),
    new MyChild($params)
);

Другой вариант может быть цепочкой методов addChild :

$parent = new MyParent;
return $parent
    ->addChild(new MyChild($params))
    ->addChild(new MyChild($params))
    ->addChild(new MyChild($params));

Дети также передают несколько аргументов своему конструктору, поэтому я пытаюсь для баланса между удобочитаемостью и расходами на обработку.

5
задан Dan Lugg 10 June 2011 в 17:19
поделиться