Autor Zpráva
ronnie
Profil
Mám skript

public function __construct(Category $categories)
{
$this->_categories = $categories->getAllCategories();
$cat1 = $this->_categories;
if (!$this->_categories) {
$this->_valid = false;
return;
}
foreach ($this->_categories as $cat) {}
}


v třídě, která implementuje rozhraní Iterator. Konstruktor přijímá třidu Category, která implementuje rozhraní IteratorAggregate. Prvni příkaz načte do atributu všechny kategorie (pole), pak je zde podmínka, která testuje, zda nějaké kategorie existují. A nakonec je tam cyklus foreach, který je kámen úrazu. Když se atribut projede cyklem, další práce s atributem _categories skončí chybou, chová se tak, jako by žádné pole nexistovalo. Když cyklus foreach odstraním, tak vše funguje.

Problém jsem vyřešil tak, že se celé pole zkopíruje do proměnné $cat1 a pak všechno funguje bez problémů.

Myslíte, že je to bug? O půl 4 ráno to asi bude spíš moje chyba, co?:)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0