Podczas tworzenia systemu napotkałem na problem, z którym nie mogę sobie za bardzo poradzić. Mianowicie mam sobie klasę, np.
class test { public $var1; public $var2; }
W momencie kiedy utworzę obiekt normalnie:
$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:
$aArray[] = new test(); $aArray[] = new test(); $aArray[] = new test(); foreach ($aArray as $oObj) { // $oObj->var1; }
Wewnątrz foreacha netbeans już nie podpowiada że $oObj jest obiektem klasy test.
próbowałem już kilku różnych konstrukcji, np:
foreach ($aArray as /** @var test **/ $oObj) {}
/** @var test $oObj **/ foreach ($aArray as $oObj) {}
foreach ($aArray as $oObj) { /** * @var test $oObj */ }
Niestety żaden sposób nie działa i nie otrzymuję podpowiedzi od netbeansa. Jedynym rozwiązaniem na jakie trafiłem i działa jest:
foreach ($aArray as $oObj) { $oObj instanceof test; }
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?