Искать
Вы превысили запрос на
0 знаков

19. Рекурсия в PHP

Не пройден
6 заданий

Данная тема является сложной для понимания, так как рекурсия — это не совсем цикл. Проще говоря, рекурсия — это функция, которая вызывает саму себя.

Примитивный пример:

Пример (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)
<?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

@codebra_official
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ
Пользовательские функции в PHPКурс по PHP
Массивы в PHPКурс по PHP
Обработка исключений (try/except) в PythonЗнакомство с Python
Итоги раздела «Самые основы Python»Знакомство с Python
Операторы switch и match в PHPКурс по PHP
Константы в PHPКурс по PHP
Генераторы и оператор yield в PythonЗнакомство с Python
Типы данных в PythonЗнакомство с Python
Поиск хостов с помощью NmapРазведка и сканирование
Впервые на сайте Codebra?

Извините за это всплывающее окно, меня они тоже раздражают.

Образовательный ресурс codebra.ru полностью посвящен программированию и компьютерной безопасности. Все курсы и уроки находятся на главной странице. Ради интереса можете посмотреть на содержимое курсов по Пентесту Active Directory, Python, HTML и CSS, JavaScript, C++ и другие, размещенные на главной странице.

Если что-то не нашли, то воспользуйтесь поиском по сайту, который находится на главной странице в самом верху.

Удачи в обучении!

Закрыть окно