курс

PHP: Функции

2064 студента 1143 сообщения
Последнее обновление: 02 ноября 2024
Курс PHP: Функции
3 900 ₽ в месяц
за все курсы Хекслета
Зарегистрироваться
  • Тренажер с практикой
  • Бессрочный доступ к теории
  • Асинхронный формат
    обучения

Включено в курс

17 уроков (видео и/или текст)
25 упражнений в тренажере
43 проверочных теста
Помощь в «Обсуждениях»
Доступ к остальным курсам платформы

Чему вы научитесь

  • Писать лаконичный и эффективный код с помощью продвинутых возможностей функций
  • Отделять чистые функции от функций с побочными эффектами
  • Использовать функции высшего порядка для обработки коллекций (map/filter/reduce)
  • Отличать императивную парадигму программирования от декларативной (функциональной)

Описание

На этом курсе вы изучите функции. Вы узнаете, что такое объекты первого рода, безымянные лямбда-функции и функции высшего порядка. Вы научитесь использовать функции внутри других функций, использовать встроенные операции map, filter, reduce и писать обертки для расширения функциональности. Знания из этого курса помогут проектировать лаконичные и эффективные программы, отделять побочные эффекты от чистого кода.

Чтобы учиться было проще, стоит заранее изучить курсы:

Программа курса

Продолжительность 19 часов

Формат обучения

Испытания

Это практические задания, которые мы советуем выполнить после завершения курса. Задания помогут вам получить дополнительный опыт в программировании и закрепить полученные навыки. Обычно мы рекомендуем выполнить 3-5 испытаний. Но если не получается, не отчаивайтесь. Просто вернитесь к ним позже

#
Задание
% завершений

Отзывы

Аватар пользователя Andrey
Andrey 02 июня 2022

Отзыв. Знаком с PHP уже лет 15, но все равно почерпнул для себя много нового, чего я раньше либо не знал, либо просто никогда не использовал. Например, не знал чем точно отличается императивный подход от декларативного, хоть и встречался с этими определениями, а о понятии функций высшего порядка вообще никогда не слышал. Благодарю.


Аватар пользователя Diana B
Diana B 30 октября 2019

Классная задачка для подведения итогов и раскладывания по полкам :)


Аватар пользователя Kirill Svirid
Kirill Svirid 13 февраля 2019

Просидел.. ., попыхтел.. .,просматривал и разбирал примеры из теории, иногда запускал некоторые из примеров в repl.it, где-то для меня было так удобнее и в чём-то помогало. Как в некоторых случаях помогал просмотр файла с тестами, там бывает можно натолкнуться на мысль о решении, каким оно должно выглядеть, ну это к примеру.

Пробовал и еще раз пробовал, вникал и наконец-то решил. Конечно, не так элегантно и лаконично как решение учителя. Решение учителя включает в себя всё трио, пройденных трёх функций, красиво применена и array_filter, и array_map в итоге возврат нужного результата из array_reduce, просто красота! Эх.. . Я же в своём решении всё "скармил" одной мощной array_reduce, понятно, что внутри получилось много проверок - if-ов, возможно и "лишних" присвоений, не очень красивых retur-ов :) . Вобщем такой олдскульный хардкор:)

Когда начинаешь понемногу вникать и доходить до принципов устройства и работы этих чУдесных:) функций: array_map, array_filter, array_reduce , то раскладывается всё по-полочкам. По-началу пытаешься как бы "уловить", где там цикл "зашит", потому что привык уже и чувствуешь что вот он работает, а его явно не видно:) и как-будто чего-то не хватает:).

В array_reduce не совсем привычны действия с аккумулятором, вроде бы прочитаешь теорию и просмотришь примеры и кажется, да и понятно, в общем и в целом, но потом на практике есть свои моменты, нюансы и нужно разбираться, как говорится: "Мелочи - это не пустяки! И мелочи в мелочах - вовсе не мелочи!". Это особенно применимо к программированию!

[?] Такой вот вопрос с аккумулирующим в себе итоговое значение, как взаимосвязаны в решении учителя массив $acc, который подаётся первым аргументом в нашу анонимную функцию и 3-тий параметр - пустой массив [] в array_reduce ? Пустой массив $acc , наполняется в цикле внутри анонимной функции с учётом всех тех условий, прописанных в теле функции. То есть каждую итерацию идёт заполнение изначально пустого - $acc , по окончанию цикла, далее наполненный $acc возвращается уже из нашей анонимной функции - return $acc , то есть вот он у нас собственно есть return результирующего нужного нам массива, а какую роль играет тут 3-тий аргумент array_reduce? Это просто показать, что возвращаться будет массив - [] ? Ведь по сути агрегируется $acc , а как $acc связан с 3-им аргументом - []. Вобщем не совсем понятна что-ли роль этого 3-его аргумента агрегатора в array_reduce и вообще это похоже как итоговый(2-ой возврат) из функции - вернули наш результирующий массив $acc, к тому еще из array_reduce вернули 3-тий аргумент - [] ? Представляется что-то такое.)

// removed


Аватар пользователя Станислав Муратшин
Станислав Муратшин 08 октября 2018

Решил через регулярные выражения, хотя до конца и не понял как это получилось. Посмотрел решение учителя. Это круто! Разделить через explode и вернуть вторую часть. Очень интересно.

Рекомендуемые программы

профессия
Программирование на PHP, Разработка веб-приложений и сервисов используя Laravel, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
Верстка на HTML5 и CSS3, Программирование на JavaScript в браузере, разработка клиентских приложений используя React
10 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на Python, Разработка веб-приложений и сервисов используя Django, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
Тестирование веб-приложений, чек-листы и тест-кейсы, этапы тестирования, DevTools, Postman, SQL, Git, HTTP/HTTPS, API
4 месяца
с нуля
Старт 26 декабря
профессия
Программирование на Java, Разработка веб-приложений и микросервисов используя Spring Boot, проектирование REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
новый
Google таблицы, SQL, Python, Superset, Tableau, Pandas, визуализация данных, Anaconda, Jupyter Notebook, A/B-тесты, ROI
9 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на Ruby, Разработка веб-приложений и сервисов используя Rails, проектирование и реализация REST API
5 месяцев
c опытом
Старт 26 декабря
профессия
Программирование на JavaScript в браузере и на сервере (Node.js), разработка бекендов на Fastify и фронтенда на React
16 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на JavaScript, разработка веб-приложений, bff и сервисов используя Fastify, проектирование REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
новый
Git, JavaScript, Playwright, бэкенд-тесты, юнит-тесты, API-тесты, UI-тесты, Github Actions, HTTP/HTTPS, API, Docker, SQL
8 месяцев
c опытом
Старт 26 декабря