Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne][PHP]Podpowiadanie składni w Netbeans 7.0.1 - prawidłowe uzycie phpDoc
Forum PHP.pl > Forum > Przedszkole
Nh2003
Witam,

Podczas tworzenia systemu napotkałem na problem, z którym nie mogę sobie za bardzo poradzić. Mianowicie mam sobie klasę, np.
  1. class test {
  2. public $var1;
  3. public $var2;
  4. }


W momencie kiedy utworzę obiekt normalnie:
  1. $oObj = new test();

Podpowiadanie składni działa normalnie, dostaję podpowiedzi o elementach $var1 i $var2. Problem zaczyna sie kiedy mam tablicę obiektów i korzystam np. z foreach:
  1. $aArray = array();
  2. $aArray[] = new test();
  3. $aArray[] = new test();
  4. $aArray[] = new test();
  5.  
  6. foreach ($aArray as $oObj) {
  7. // $oObj->var1;
  8. }


Wewnątrz foreacha netbeans już nie podpowiada że $oObj jest obiektem klasy test.

próbowałem już kilku różnych konstrukcji, np:

  1. foreach ($aArray as /** @var test **/ $oObj) {}

  1. /** @var test $oObj **/
  2. foreach ($aArray as $oObj) {}

  1. foreach ($aArray as $oObj) {
  2. /**
  3. * @var test $oObj
  4. */
  5. }


Niestety żaden sposób nie działa i nie otrzymuję podpowiedzi od netbeansa. Jedynym rozwiązaniem na jakie trafiłem i działa jest:
  1. foreach ($aArray as $oObj) {
  2. $oObj instanceof test;
  3. }


Ale to rozwiązanie wydaje mi się nieeleganckie i niepoprawne. Czy istnieje jakiś inny sposób żeby określić typ zmiennej w pętli za pomocą phpDoca?
wookieb
  1. // w środku pętli
  2. /* @var $oObj test */
Nh2003
Dzieki wookieb, zadzialalo

  1. foreach ($aArray as $oObj) {
  2. /* @var $oObj test */
  3. }


Zastanawia mnie tylko czemu
  1. /* @var $oObj test */

dziala, a konstrukcja typu
  1. /** @var $oObj test */

juz nie działa. Z tego co mi wiadomo to wpisy phpDoc zaczynają się od /**.
wookieb
Phpdoc-i a nie adnotacje dla edytora jaki w tym przypadku jest netbeans.

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.