BesonderheitenHint Iterator strenger Typ Entitäten in PHPDoc
- I PhpStorm 8 IDE verwenden.
- Angenommen, wir haben eine Klasse
Foo
, die die Schnittstelle\Iterator
implementiert, und wir wissen, dass alle Elemente in diesem Iterator der InstanzBar
angehören.
Frage
Wie andeuten, dass Foo
iterable und enthält nur Elemente von Bar
? Natürlich Hinweisinformationen behalten sollte, dass es Instanz Foo
Was ich bisher versucht
Wenn wir eine Reihe von Bar
Instanzen hatten, dann ist das eine einfache Sache ist (es ist beispielsweise beschrieben, in this Frage): Bar[]
. Auch wenn die Absicht durch Foo
laufen ist, kann es immer noch aufgelöst (mehr oder weniger) wird mit:
//assume that $foo is instance of Foo
//..
/* @var $object Bar */
foreach ($foo as $object) {
}
Allerdings gibt es eine sehr wichtige Sache, die nicht erreichbar mit an Ort und Stelle ist Hinting: Rückgabetyp . Wenn ich eine Methode habe, die Foo
zurückgeben soll, weiß ich nur, wie man das anweist Foo
, aber Benutzer dieser Funktion wird noch nicht aussetzen können, dass es tatsächlich iterable ist und Bar
Instanzen enthält (wie es wäre, wenn ich ‚@return Bar[]
im Fall mit Array von Bar
Instanzen angeben ll)