Рекурсивная функция возвращает все папки из директории C:\Test, кроме вложенных. Что необходимо изменить, чтобы генератор yield возвращал все папки, включая вложенные?
function dirFinder ($folder)
{
$all_in_folder = scandir($folder);
foreach ($all_in_folder as $object) {
if ($object == '.' || $object == '..') continue;
$path_to_object = "$folder" . DIRECTORY_SEPARATOR . "$object";
if (is_dir($path_to_object)) {
yield $path_to_object;
dirFinder($path_to_object);
}
}
}
foreach (dirFinder('C:\Test') as $value) {
echo $value . '<br />';
}
dirFinder($path_to_object);
просто возвращает в тело цикла генератор, но при этом ничего не возвращается из первичного вызова функции dirFinder('c:\test');
замените эту строчку на
foreach (dirFinder($path_to_object) as $subFolder) {
yield $subFolder;
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей