Функция empty()
не проверяет содержимое каталога на пустоту, а только в том случае, если значение переменной пустое.Ваша переменная $a
содержит имя файла текущей итерации, поэтому вы проверяете, есть ли у файла имя файла.Этого никогда не произойдет, поэтому вы всегда выполняете ветвь с рекурсивным вызовом.
В основном вам нужно посчитать количество записей, возвращаемых scandir()
для каталога.Если conut 2
, каталог пуст и может быть удален.