I am trying to understand part of the output I get from this code:
<?php
class DirectoryReader extends DirectoryIterator
{
function __construct($path)
{
parent::__construct($path);
}
function current()
{
return parent::getFileName();
}
function valid()
{
if(parent::valid())
{
if (!parent::isDir())
{
parent::next();
return $this->valid();
}
return TRUE;
}
return FALSE;
}
}
try
{
$it = new DirectoryReader('C:\wamp\www');
while($it->valid())
{
echo $it->current().'<br />';
$it->next();
}
}
catch(Exception $e)
{
echo 'No files Found!<br />';
}
?>
At the code you can see that I pass this path to the constructor: C:\wamp\www,
What I don't understand: before I can see all the folders the first line is ., the second is .., and then I can see the folder names for example:
.
..
someFolder
someOtherFolder
I know that . present the current folder and .. is getting back at the folders hierarchy, but I can't understand why does it print the . then .. and then the folders?
I really want to understand the action of this iterator, if can some one please help me understand I will be very thankful.