вы можете использовать phpdocs для того, чтобы PhpStorm принять массив нескольких типов, как так:
/**
* @return Thing[] | OtherThing[] | SomethingElse[]
*
*/
public function getThings()
{
return array (new Thing(), new OtherThing(), new SomethingElse());
}
Эта техника заставит PhpStorm думать, что массив может содержать любой из этих объектов и так это даст вам тип намека для всех трех. В качестве альтернативы вы можете сделать все объекты распространяются на другой объект или реализовать интерфейс и тип подсказки, что когда-то объект или интерфейс, как так:
/**
* @return ExtensionClass[]
*
*/
public function getThings()
{
return array (new Thing(), new OtherThing(), new SomethingElse());
}
Это даст вам тип подсказки только для того, что классы расширить или реализовать от родительский класс или интерфейс.
Я надеюсь, что это помогло!
Да. «PHP 5 вводит намеки типов. Теперь функции теперь могут принудительно настраивать параметры (указывая имя класса в прототипе функции), интерфейсы, ** массивы (начиная с PHP 5.1) **« http: // php. net/manual/en/language.oop5.typehinting.php - Если я полностью не понял ваш вопрос. –
Я говорю о PHPStorm (IDE) @ ʰᵈˑ –
А, ну, [это редактирование] (http://stackoverflow.com/revisions/29165580/2) разрешило мое замешательство в вопросе. Виноват. –