PHP: Функции
Теория: Полезные функции для работы с коллекциями
В PHP стандартная библиотека небогата функциями для работы с коллекциями, строками или датами. Этот недостаток можно восполнить, подключив стороннюю библиотеку.
Например, в мире JavaScript есть стандарт lodash, без которого не обходится практически ни один проект. В PHP нет единого устоявшегося решения, но есть пачка небольших, которые используются в разных проектах. Часть из них основана на объектном синтаксисе — мы рассмотрим их в более поздних уроках. Часть стандартов — это набор обычных функций. Кроме того, часть функций относится к функциям высшего порядка, которые мы еще не проходили, но разберем уже в следующем уроке.
Объектные:
Использующие только функции:
Сразу скажем, что в реальной работе необходимость использовать такие библиотеки возникает почти сразу. Еще совсем недавно PHP-программисты создавали файлы с полезными функциями и таскали их из одного проекта в другой. Эти времена уже прошли, можно не тратить время на то, что уже делалось тысячу раз до нас.
К сожалению, мы не сможем разобрать все возможные функции в этих курсах. Кое-что мы рассмотрим, но уже после учебы не забывайте периодически просматривать библиотеки — вдруг найдется что-то полезное.
Обратите внимание, что в указанных библиотеках иногда встречаются функции, которые уже встроены в сам язык. Так происходит по разным причинам:
- Согласованность. Такие функции-дубликаты делают для того, чтобы библиотека была полной
- Исправление ошибок PHP. В некоторых PHP-функциях по историческим причинам есть ошибки. Библиотеки могут сделать те же функции, но уже без ошибок
- Улучшение. Функции библиотек могут быть лучше стандартных: иметь другой порядок аргументов, расширенные возможности, убранные ограничения или просто понятное имя
Итак, начнем изучать функции библиотек. Первая на очереди — библиотека Funct.
Коллекции
Функция last
Такая простая и нужная функция почему-то отсутствует в самом PHP:
Функция rest
Принимает на вход массив. Возвращает новый массив, в котором отсутствует первый элемент исходного:
Функция without
Возвращает копию массива, из которого удалены все значения, переданные в функцию вторым и последующими параметрами:
Функция flattenAll
Принимает вложенный массив и делает его плоским:
Функция union
Находит объединение множеств:
Функция findWhere($collection, $value)
Просматривает массив и возвращает первое значение, совпадающее по всем парам «ключ-значение», переданным вторым параметром:
Строки
Функция camelize
Принимает на вход строку и возвращает ее версию, записанную в нотации lowerCamelCase:
Функция contains
Проверяет, включает ли строчка подстроку:
Функция endsWith
Проверяет, оканчивается ли строчка на подстроку:
Выводы
В этом уроке перечислена лишь небольшая часть из всего многообразия, которое вы можете найти на GitHub в документации соответствующих библиотек. Изучить все функции в рамках курсов невозможно, да и не нужно. Достаточно периодически проходиться по документации популярных библиотек и просматривать, как они используются. Таким образом вы постепенно научитесь писать более понятный и лаконичный код.
.png)
