Что такое рекурсия? Когда использовать?

Ответ

Рекурсия - вызов функцией самой себя:

function factorial(int $n): int {
    if ($n <= 1) return 1;     // базовый случай
    return $n * factorial($n - 1); // рекурсивный вызов
}

// Обход дерева - классический случай для рекурсии
function flatten(array $arr): array {
    $result = [];
    foreach ($arr as $item) {
        if (is_array($item)) {
            $result = array_merge($result, flatten($item));
        } else {
            $result[] = $item;
        }
    }
    return $result;
}

Используйте для: обхода деревьев, фракталов, divide-and-conquer. Избегайте для линейных задач (используйте циклы). PHP не оптимизирует хвостовую рекурсию, глубокая рекурсия может вызвать stack overflow.

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.