Рекурсия в PHP

  Рет қаралды 6,093

WebForMySelf

WebForMySelf

5 жыл бұрын

Разработка веб-приложения на PHP. Посмотрите уроки: webformyself.com/minikurs/php...
Исходники тут: webformyself.com/rekursiya-v-...
В этом уроке мы рассмотрим одну из достаточно сложных для понимания новичками тем - это тема рекурсии. Если говорить в двух словах, то рекурсия - это обращение функции к самой себе.
Рекурсивная функция - это функция, которая в своем коде вызывает саму себя. Определение выше звучит немного странно и не очень понятно, но на самом деле все именно так и обстоит.
В уроке вы увидите классический пример использования рекурсии в PHP для создания функции дерева каталога.

Пікірлер: 29
@user-ew2pd6fq8j
@user-ew2pd6fq8j 3 жыл бұрын
Вы просто лучший :))), в ютубе роликов о рекурсии тьма, а Ваш ролик один из самых достойных, не понятно лишь почему так мало просмотров... В любом случае, Вы и Ваша команда просто супер!!!
@user-ew2pd6fq8j
@user-ew2pd6fq8j 3 жыл бұрын
@Joshua Hunter Okay, so it seems worth to recursively subscribe to them quintillion times? :)
@vadimnv8608
@vadimnv8608 4 жыл бұрын
Красавец!!! Вживую придумать задачу и реализовать её = это очень круто и многое проясняет
@php-b30
@php-b30 5 жыл бұрын
Благодарю за урок!👍👍 Наконец-то для рекурсия прояснилась! Примеры реализации в уроке здорово помогли пониманию темы.
@qwaseres
@qwaseres 5 жыл бұрын
Как всегда на высоте! Спасибо за старания Андрей. Очень удобно смотреть такие не большие видеоуроки, в которых делается что-то конкретное... мозг не нагружают :) Мой лайк первый )
@matroskin978
@matroskin978 5 жыл бұрын
Спасибо за оценку ;)
@temcodes
@temcodes 5 жыл бұрын
Спасибо большое за урок!
@matroskin978
@matroskin978 5 жыл бұрын
Пожалуйста)
@виртуоз_ру
@виртуоз_ру 5 жыл бұрын
Спсибо Андрей, за познавательно-интересный урок.
@matroskin978
@matroskin978 5 жыл бұрын
Всегда пожалуйста ;)
@sreggh
@sreggh 3 жыл бұрын
Сложно, но интересно) Спасибо за урок!
@alien2364
@alien2364 3 жыл бұрын
Супер! Спасибо!
@user-kg6fz5tz2b
@user-kg6fz5tz2b 5 жыл бұрын
Спасибо!
@matroskin978
@matroskin978 5 жыл бұрын
Пожалуйста)
@0760kos
@0760kos 5 жыл бұрын
Много чего не понятно, но все равно, огромное спасибо за урок!
@matroskin978
@matroskin978 5 жыл бұрын
Старался рассказать и показать как можно понятнее... но да, тема рекурсии действительно не очень простая, запутаться легко. С практикой должна стать понятнее. За отзыв - спасибо :)
@user-pm6bd1hp5s
@user-pm6bd1hp5s 5 жыл бұрын
Спасибо за урок! Можешь еще сделать видео урок по запуску на локальном компьютере рабочего сервера php-fpm на Docker?
@Equivok2
@Equivok2 4 жыл бұрын
10:55 если для вас этот код непонятен, то лучше его запускать в терминале. Уходит в бесконечный цикл, выводя сообщение об ошибке. PHP Warning: readdir() expects parameter 1 to be resource, boolean given in ... opendir($dir) возвращает false. linux и xampp, если что.
@user-kg6fz5tz2b
@user-kg6fz5tz2b 5 жыл бұрын
Андрей! А про замыкания в JS, такой же урок можно?))На таком же понятном языке!) Ещё раз Спасибо!
@matroskin978
@matroskin978 5 жыл бұрын
Александр, JS - это не моя тема) основы JS я знаю, что-то могу написать на этом языке, но не больше, увы.
@user-kg6fz5tz2b
@user-kg6fz5tz2b 5 жыл бұрын
@@matroskin978 Понял. Гляну Владилена! Просто, лично я, догоняю после Ваших объяснений))Ок. Спасибо! Будем ждать новых видео!
@Andris_Briedis
@Andris_Briedis 2 жыл бұрын
Решил наконец разобраться в рекурсивных функциях. Это видео позволило мне понять главную основную ошибку, которую я увидел в работе этих функций. Я думаю, что функция должна закончиться. И только тогда он может призвать себя к следующей работе. Но, как видно из примера, функция вызывает сама себя, продолжая работать. В этом случае главный каталог всегда открыт для чтения. И второй момент. Если у вас очень глубокое дерево, множество функций выполняется одновременно. Это все еще смущает меня. Что делать, если функция очень ресурсоемкая?
@matroskin978
@matroskin978 2 жыл бұрын
Если функция ресурсоемкая, тогда ответ очевиден - ее нужно оптимизировать. Возможно, переписать, использовав другой алгоритм решения. Других вариантов нет)
@MuaddibAtreides
@MuaddibAtreides 5 жыл бұрын
А как отсортировать чтоб сначала папки шли а потом файлы? . А то все в перемешку :)
@matroskin978
@matroskin978 5 жыл бұрын
Можно попробовать и такой вариант :) Для этого вместо функций opendir/readdir можно использовать функцию scandir, которая вернет сразу массив содержимого папки. Затем нужно будет вначале пройтись по этому массиву и отсортировать его элементы, чтобы вначале шли папки, а затем - файлы (сделать это поможет та же функция is_dir). В итоге должны получить массив, в котором сначала идут папки, а после - файлы. И только после этого проходимся по этому массиву и выполняем те же операции, что показаны в уроке: если текущий элемент папка, тогда выводим его и запускаем рекурсию, если файл - просто выводим. Собственно, такой алгоритм. Попробуйте, если не получится, скажите - я набросаю решение.
@виртуоз_ру
@виртуоз_ру 5 жыл бұрын
Андрей, вы гуру программирования. У меня вот такой вопрос: как реализовать вывод контента по горадам, регионам на вордпрессе? Вот когда заходишь на сайт и появляется всплывашка: вы стакого то города, да, нет. Если ответ "нет", то появляется список городов. Может запишите урок или серию уроков. Думаю что многим интересна эта тема.
@matroskin978
@matroskin978 5 жыл бұрын
Спасибо) Похожий урок уже есть, вот он - webformyself.com/sozdanie-privlekatelnoj-formy-opredelenie-strany/ В нем только определяется не город, а страна. Вся проблема в том, чтобы найти актуальную базу диапазонов IP городов нужной страны. Другой вариант - использовать API сервисов, предоставляющих информацию по запросу, например: free.ipwhois.io, geoplugin.com, sypexgeo.net и др. Остается все это дело прикрутить к сайту примерно по такому алгоритму: 1) пользователь обращается к сайту; 2) получаем его IP и; 3) либо достаем город из своей БД, либо отправляем запрос к выбранному API; 4) полученный город показываем пользователю, как определенный для него; 5) если город не совпал, тогда вытаскиваем из БД доступные города по стране и предлагаем пользователю самому выбрать; 6) итоговый город записывается в куки пользователя... в дальнейшем берем город из кук (обязательно проверяем, есть ли такой город в БД городов), если куки нет, тогда возвращаемся к шагу 2. Вообще, может и запишу такой урок чуть позже.
@виртуоз_ру
@виртуоз_ру 5 жыл бұрын
@@matroskin978 Спасибо огромное за развёрнутый ответ. Урок буду ждать.
@matroskin978
@matroskin978 5 жыл бұрын
@@виртуоз_ру Пожалуйста)
Сортировка массивов в PHP
16:45
WebForMySelf
Рет қаралды 11 М.
ВОДА В СОЛО
00:20
⚡️КАН АНДРЕЙ⚡️
Рет қаралды 32 МЛН
Useful gadget for styling hair 🤩💖 #gadgets #hairstyle
00:20
FLIP FLOP Hacks
Рет қаралды 10 МЛН
Ссылки в PHP
22:15
WebForMySelf
Рет қаралды 11 М.
Вывод таблицы в цикле PHP
12:13
WebForMySelf
Рет қаралды 18 М.
Простой чат на PHP. Часть 3
46:53
WebForMySelf
Рет қаралды 15 М.
PHP-DI - сервис контейнер
48:05
WebForMySelf
Рет қаралды 11 М.