Get Files recursively in PHP

RecursiveDirectoryIterator to get all files

This implementation also sorts by extension if you switch the $files[] = ... line to the commented one

$rii = new RecursiveIteratorIterator(new RecursiveDirectoryIterator('path/to/folder'));    
$files = [];     
foreach ($rii as $file) {    
    if ($file->isDir()){     
        continue;    
    }    
    //$files[$file->getExtension()][] = $file->getPathname();    
    $files[] = $file->getPathname();     
}    

One-liner function as a variable, with readdir

I need to re-test & confirm this function works properly.
Here's a one-liner that declares nothing in the global scope, thus will not conflict with any functions or classes you have.
The readdir approach could be a problem with significantly nested directories where too many file pointers get opened. scandir would resolve this.

$files =     
(new class{    
    function getFiles($path,$ext='*'){    
        $dh = opendir($path);    
        $files = [];    
        while ($file = readdir($dh)){    
            if ($file=='.'||$file=='..')continue;    
            $fPath = str_replace('//','/',$path.'/'.$file);    
            if (is_dir($fPath)){    
                $subFiles = $this->getFiles($fPath,$ext);    
                $files = array_merge($files,$subFiles);    
            } else if ($ext=='*'    
                ||($fExt=pathinfo($fPath,PATHINFO_EXTENSION))==$ext){    
                    var_dump($fExt);    
                $files[] = $fPath;    
            }    
        }    
        return $files;    
    }    
})->getFiles($dir,$ext);    

And as a single line, provided you declare $dir and $ext

$files = (new class{ function getFiles($path,$ext='*'){ $dh = opendir($path); $files = []; while ($file = readdir($dh)){ if ($file=='.'||$file=='..')continue; $fPath = str_replace('//','/',$path.'/'.$file); if (is_dir($fPath)){ $subFiles = $this->getFiles($fPath,$ext); $files = array_merge($files,$subFiles); } else if ($ext=='*' ||($fExt=pathinfo($fPath,PATHINFO_EXTENSION))==$ext){ var_dump($fExt); $files[] = $fPath; } } return $files; } })->getFiles($dir,$ext);