2009-11-29 15 views
56

Czy istnieje sposób na wskazanie WIDEJU, że zmienna ma jakiś typ? Muszę powtórzyć tablicę obiektów i nie ma dostępnej opcji automatycznego uzupełniania. To pomaga w Zend Studio:JetBrains WebIDE: Podpowiedź typu zmiennej PHP?

/* @var ClassName $object */ 

wiem, że jest to funkcja w JetBrains zadeklarować tablicę obiektów:

/** 
* @return ClassName[] 
*/ 

Ale to działa tylko z funkcją typ powrotnej.

+0

Działa z tablicami. Czy działa z ArrayIterators, które iterują na określonym typie? – redestructa

Odpowiedz

97

/* @var ClassName $object */ jest niepoprawnym komentarzem PHPDOC i nie jest analizowany w aktualnej wersji Web IDE. Użyj podwójne gwiazdki, aby to działało:

/** @var ClassName $object */ 

Ponadto, można opisywać w foreach($array as $var)$array z /** @var ClassName[] $array */ i $var typ zostanie wyprowadzona automatycznie.

+0

nie wiedział o nawiasach kwadratowych notacja – sanya

+2

Powiązane pytanie: Moja klasa PHP używa magicznego gettera dla zmiennej i chcę powiązać tę zmienną gettera z obiektem klasy, jakikolwiek pomysł jak to zrobić? Ponieważ nie mogę zdefiniować zmiennej w mojej klasie. –

+0

Wow .. po prostu wylogowałem się dla zabawy i naprawdę nie mam nadziei, że to będzie naprawdę ... Nigdy nie byłem tak źle w moim życiu i jestem szczęśliwy, że się myliłem! Ta funkcja jest świetna, dzięki! :) –

19

Jak już wspomniano, PhpStorm użyje regularne bloki PHPDoc:

/** @var ClassName $object */ 

Jednak od 2,1 Jest też wsparcie dla NetBeans/Eclipse/Zend @var annotations:

/* @var $object ClassName */ 

Proszę zwrócić uwagę na starty komentarz z /* zamiast /** (w ten sposób nie pojawi się, jeśli wygenerujesz aktualną dokumentację za pomocą phpdoc). Również argumenty są zamienione, choć PhpStorm akceptuje dowolnej kolejności:

/* @var ClassName $object */ 

Last but not least, mogą poprzedzać niemal dowolną linię kodu (technicznie, bloki PHPDoc są ograniczone do niektórych pozycji).