#44964 [Opn->Asn]: DirectoryIterator assignment within foreach()
| From: | colder@php.net | Date: | Sun, 11 May 2008 12:13:16 +0000 |
| Subject: | #44964 [Opn->Asn]: DirectoryIterator assignment within foreach() | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-124896@lists.php.net to get a copy of this message | ||
ID: 44964
Updated by: colder@php.net
Reported By: phpbugs at rjharrison dot org
-Status: Open
+Status: Assigned
Bug Type: SPL related
Operating System: Linux (fedora core 6 i think)
PHP Version: 5.2.6
-Assigned To:
+Assigned To: colder
Previous Comments:
------------------------------------------------------------------------
[2008-05-10 19:25:02] phpbugs at rjharrison dot org
Description:
------------
When looping over a $directorIterator using FOREACH something goes
wrong when assigning the "as" variable to an array.
Reproduce code:
---------------
$filePath = 'PUT YOUR TEST PATH HERE';
$dir = new DirectoryIterator($filePath);
$files = array();
foreach ($dir as $file){
$files[] = $file;
echo $file->getFilename(), " / ", $file->getSize(), " bytes\n";
}
echo "\nSecond loop:-\n";
foreach ($files as $file2){
echo $file2->getFilename(), " / ", $file2->getSize(), " bytes\n";
}
Expected result:
----------------
(Depends on the files but assuming a single file in the directory)
test.php / 18 bytes
. / 4096 bytes
.. / 4096 bytes
Second run:-
test.php / 18 bytes
. / 4096 bytes
.. / 4096 bytes
Actual result:
--------------
test.php / 18 bytes
. / 4096 bytes
.. / 4096 bytes
Second run:-
/ 4096 bytes
/ 4096 bytes
/ 4096 bytes
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=44964&edit=1