specyfikiPodpowiedź iterator ścisłych typu podmiotów w PHPDoc
- używam PHPStorm 8 IDE.
- Załóżmy, że mamy jakąś klasę
Foo
, która implementuje interfejs\Iterator
i wiemy, że wszystkie elementy wewnątrz tego iteratora będą na przykład klasyBar
.
Pytanie
Jak schować że Foo
jest iterable i zawiera tylko elementy Bar
? Oczywiście, wskazówka powinna zachować informację, że jest to instancja Foo
co starałem tak daleko
Gdybyśmy mieli tablicę Bar
przypadkach, to jest rzeczą prostą (nie jest to opisane, na przykład, w pytaniu this): Bar[]
. Ponadto, jeśli zamiarem jest iterację Foo
, to nadal może być rozwiązana (bardziej lub mniej) z:
//assume that $foo is instance of Foo
//..
/* @var $object Bar */
foreach ($foo as $object) {
}
Jednak jest jedna bardzo ważna rzecz, która nie jest osiągalna z in-place podpowiedzi: typ zwracany . Jeśli będę miał jakąś metodę, która powinna zwrócić Foo
, wiem tylko, jak wskazać, że Foo
, ale użytkownik tej funkcji nadal nie będzie w stanie narazić się, że jest w rzeczywistości iterowalna i zawiera instancje Bar
(jak byłoby, gdybym ja „ll określić @return Bar[]
w przypadku z tablicy Bar
przypadkach)