0 знаков
19. Рекурсия в PHP
Данная тема является сложной для понимания, так как рекурсия — это не совсем цикл. Проще говоря, рекурсия — это функция, которая вызывает саму себя.
Примитивный пример:
<?php
function recursion()
{
recursion();
}
recursion();
?>
При запуске такого кода произойдёт ошибка Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 262144 bytes) in /home/user/scripts/code.php on line 4
. Происходит переполнение стека вызовов и переполнение памяти. Нам нужно добавить условие.
Посчитаем факториал числа:
<?php
function factorial($n)
{
if ($n <= 1) return 1; // Условие можно записать и в одну строчку.
return $n * factorial($n - 1); // Происходит вызов функции
}
echo factorial(5); // 120
?>
Если $n
больше 1
, функция вызывает саму себя с аргументом $n - 1
. Это создает цепочку вызовов, пока не достигнет условия выхода. На каждом уровне умножается текущее значение $n
на факториал следующего числа.
Рекурсии хорошо помогают в переборе больших данных, когда мы не знаем на сколько они вложены друг в друга. Конечно есть ограничение, но я не думаю что вы будете столько перебирать :)
ПримечаниеСоветую сейчас вам попрактиковаться. Пока больше о рекурсии вам знать не нужно, чтобы не забивать голову. Попробуйте решить задачи, но не смотрите сразу решения в интернете. Лучше потратить время на самостоятельное решение и приобрести практические навыки. Главное — будьте внимательны и читайте то, что пишете.
Заключение
Поздравляю! Эти уроки, возможно, показались вам немного нудными, но они необходимы, чтобы вы поняли основы синтаксиса и возможности языка. Мы научились создавать пользовательские функции и применять встроенные функции PHP. Далее мы будем изучать что-то новое, начиная от работы с файловой системой и до работы с базами данных MySQL. В следующем разделе мы с вами научимся встраивать PHP в HTML.
Задания
1. Создайте функцию, которая принимает целое число n
и возвращает сумму всех чисел от 1
до n
.
2. Создайте функцию, которая возвращает n-й
элемент последовательности Фибоначчи.
3. Создайте функцию для обратного отображения строки.
4. Создайте функцию для поиска элемента в массиве. Функция должна возвращать индекс элемента, если он найден, или -1
, если нет.
5. Создайте функцию для переворачивание массива в обратном порядке.
6. Создайте функцию, которая принимает целое число и возвращает сумму его цифр.
Похожие уроки Codebra
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ