Bug v makru foreach

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Honza Marek
Člen | 1664
+
0
-

Přišel jsem na potíž, když makru foreach předhodím objekt DirectoryIterator. Asi to nějak souvisí s tím, že makro foreach počítá cykly od jedničky.

Reprodukční kód:

{? $dir = new DirectoryIterator(WWW_DIR)}
{foreach $dir as $key => $val}
	{$key}: {$val}<br>
{/foreach}

<hr>

{? foreach ($dir as $key => $val):}
	{$key}: {$val}<br>
{? endforeach}

Výstup:

0: ..
1: .htaccess
2: app
3: css
4: images
5: index.php
6: libs
7: nbproject
8: webtemp
 9:


0: .
1: ..
2: .htaccess
3: app
4: css
5: images
6: index.php
7: libs
8: nbproject
9: webtemp

David Grudl
Nette Core | 8173
+
0
-

Tohle je mimo Nette, asi bug přímo v CachingIterator.

Reportováno: http://bugs.php.net/49607 a http://bugs.php.net/49608

(až přijdou s klasickým „Fuck you for taking the time to write to us, but this is not a bug. Please double-check the documentation you idiot“ nebo s vylepšeným Just trust what the author of the code says, budu si zase říkat, proč já blbec vůbec něco reportoval)