Procházení foreach přes referenci – fatal error
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Jadro007
- Člen | 8
Ahoj,
v Nette jsem zkusil použít zápis
foreach($data as &$d) {
$d = "...";
/*...*/
}
Tento zápis normálně v PHP používám, ale Nette mi hodilo chybu:
„Fatal Error: An iterator cannot be used with foreach by reference“
Nevíte, jestli to jde nějak nastavit, aby to v Nette fungovalo? Přijde mi to jako docela pohodlný způsob procházení pole, i když samozřejmě můžu napsat:
foreach($data as $key => $d) {
$d[$key] = "...";
/*...*/
}
Jde mi jen o tu pohodlnost.. :)
- Ondřej Mirtes
- Člen | 1536
Tahle chyba nemá nic společného s Nette. Jde o vlastnost PHP. Na
obyčejných polích tato funkcionalita funguje, na Iteratoru (tedy objektu
s metodou getIterator()
) nikoli.