What are the advantages of using RecursiveDirectoryIterator over scandir for directory traversal in PHP?

When traversing directories in PHP, using RecursiveDirectoryIterator offers several advantages over scandir. RecursiveDirectoryIterator allows for recursive iteration through directories and subdirectories without the need for nested loops or additional logic. It also provides more control over filtering and sorting files during traversal. Additionally, RecursiveDirectoryIterator offers an object-oriented approach to directory traversal, making the code more readable and maintainable.

$directory = '/path/to/directory';

$iterator = new RecursiveIteratorIterator(
    new RecursiveDirectoryIterator($directory, RecursiveDirectoryIterator::SKIP_DOTS),
    RecursiveIteratorIterator::SELF_FIRST
);

foreach ($iterator as $file) {
    echo $file . PHP_EOL;
}