курс

PHP: Функции

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

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

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

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

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

Описание

Функции в PHP способны на большее! В этом курсе вы познакомитесь с такими понятиями, как объекты первого рода, лямбда-функции и функции высшего порядка. Научитесь передавать и принимать неограниченное число аргументов, изучите операции «отображение», «фильтрация» и «агрегация». Познакомитесь со сторонними библиотеками, значительно упрощающими работу программиста.

Уроки курса

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

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

Испытания

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

Впечатления

Аватар пользователя 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
27 октября 8 месяцев