Por favor note la forma en que el valor de retorno de dir() es chequeado en los siguientes ejemplos. Se está probando explícitamente si el valor de retorno es idéntico (igual y del mismo tipo que--vea los Operadores de Comparación para más información) a FALSE ya que de otra forma, cualquier entrada de directorio cuyo nombre evalúe a FALSE detendrá el ciclo (p.ej. un directorio llamado "0").
<?php
// Note que !== no existía hasta 4.0.0-RC2
if ($gestor = opendir('/ruta/a/archivos')) {
echo "Gestor de directorio: $gestor\n";
echo "Archivos:\n";
/* Esta es la forma correcto de iterar sobre el directorio. */
while (false !== ($archivo = readdir($gestor))) {
echo "$archivo\n";
}
/* Esta es la forma EQUIVOCADA de iterar sobre el directorio. */
while ($archivo = readdir($gestor)) {
echo "$archivo\n";
}
closedir($gestor);
}
?>