(PHP 5 >= 5.4.0, PHP 7)
RecursiveCallbackFilterIterator::hasChildren — Comprueba si los iteradores internos del elemento actual tiene hijos
   Devuelve TRUE si el elemento actual tiene hijos, o FALSE en caso contrario.
  
Esta función no tiene parámetros.
   Retorna TRUE si el elemento actual tiene hijos, o FALSE en caso contrario.
  
Ejemplo #1 Uso básico de RecursiveCallbackFilterIterator::hasChildren()
<?php
$dir = new RecursiveDirectoryIterator(__DIR__);
// Iteracicón recursiva de todos los ficheros XML
$files = new RecursiveCallbackFilterIterator($dir, function ($current, $key, $iterator) {
    // Permite la recursividad en los directorios
    if ($iterator->hasChildren()) {
        return TRUE;
    }
    // Comprueba si es un fichero XML
    if (!strcasecmp($current->getExtension(), 'xml')) {
        return TRUE;
    }
    return FALSE;
});
?>