LibCode»Блог

LibCode — это библиотека кода и знаний для разработчиков, где каждый найдет полезные ресурсы, уроки и инструменты для создания и совершенствования своих проектов.

MySQL | PHP | Python | C++ | JavaScript

Создано при поддержке GigaChat.

PHP: Синхронизация и параллельные задачи

PHP традиционно ассоциируется с однопоточным исполнением, что накладывает серьёзные ограничения на разработку высокопроизводительных приложений. В рамках классического подхода каждая HTTP-запрос исполняется последовательно, что приводит к значительным задержкам при обработке больших объёмов данных или длительных операциях.

Однако в ряде ситуаций требуется одновременное исполнение нескольких задач параллельно. Это может понадобиться для:
  • Ускорения выполнения длинных операций (например, импорта данных, обработки изображений).
  • Распараллеливания сетевых запросов (API-вызовы, загрузки файлов).
  • Асинхронной обработки событий (рассылка уведомлений, email-уведомления).

Параллельное выполнение задач в PHP



Потоки (Threads)
PHP изначально не поддерживает многопоточное исполнение на низком уровне, как в языках типа Java или Go. Однако существуют различные подходы для эмуляции параллельного выполнения задач:
  1. Fork-процессов: создание копий текущего процесса с помощью функции pcntl_fork().
  2. Process Control
...

PHP: Функция preg_match()

Функция preg_match() в PHP — это мощный инструмент для поиска и сопоставления строк с регулярными выражениями. Она позволяет осуществлять сложные операции по проверке и извлечению данных из строк, что делает её незаменимой при обработке текстовой информации.

Что делает функция preg_match()?


Функция preg_match() выполняет поиск регулярного выражения в строке и возвращает количество совпадающих результатов. Если найдено хотя бы одно совпадение, возвращается 1, если совпадений нет — 0, а в случае ошибки — false.

Синтаксис функции:
preg_match(pattern, subject, matches, flags, offset)

  • pattern: регулярное выражение, которое нужно искать.
  • subject: строка, в которой ведется поиск.
  • matches (необязательный): массив, в который сохраняются найденные совпадения.
  • flags (необязательный): флаги, влияющие на поиск (например, PREG_OFFSET_CAPTURE).
  • offset (необязательный): позиция в строке, с которой начинается поиск.

Примеры использования функции preg_match()



1. Простая проверка наличия строки
Проверка наличия...

PHP: Функция array_filter()

Функция array_filter() в PHP — это удобный инструмент для фильтрации элементов массива по заданному условию. Она позволяет избирательно удалять или оставлять элементы массива, основываясь на определенном критерии. Это делает её незаменимой при обработке данных и очистке массивов от ненужных элементов.

Что делает функция array_filter()?


Функция array_filter() принимает массив и, при необходимости, функцию обратного вызова (callback), которая определяет, какие элементы массива должны остаться, а какие — удалены. Результатом работы функции является новый массив, содержащий только те элементы, которые прошли фильтрацию.

Синтаксис функции:
array_filter(array, callable_function, flags)

  1. array: исходный массив, который нужно отфильтровать.
  2. callable_function (необязательный): функция обратного вызова, которая принимает элемент массива и возвращает true, если элемент должен остаться, и false, если элемент должен быть удалён.
  3. flags (необязательный): флаги, управляющие обработкой ключей массива.

Приме

...

PHP: Функция explode()

Функция explode() в PHP — это мощный инструмент для обработки строк, который позволяет разбить строку на массив по указанному разделителю. Это одна из самых популярных и часто используемых функций в PHP, которая находит применение в различных сценариях, от парсинга CSV-файлов до обработки адресов электронной почты.

Что делает функция explode()?


Функция explode() принимает строку и разделитель, затем разбивает строку на части по указанному разделителю и возвращает массив полученных фрагментов.

Синтаксис функции:
explode(separator, string, limit)

  1. separator: строка, по которой будет происходить разбиение.
  2. string: исходная строка, подлежащая разбиению.
  3. limit (необязательный): максимальное количество элементов в результирующем массиве. Если указан отрицательный limit, то функция вернёт все элементы, кроме последних abs(limit) элементов.

Примеры использования функции explode()



1. Простое разбиение строки
Разделение строки по пробелам:
$str = "Привет, мир!";
$arr = explode(" ",
...

PHP: Динамические свойства

Создание динамических свойств в PHP — это практика добавления новых свойств классу во время выполнения программы, без предварительного объявления этих свойств в определении класса. Несмотря на то, что раньше это считалось нормальным поведением, начиная с версии PHP 8.2, такой подход объявлен устаревшим и в ближайшем будущем будет полностью запрещён.

Что такое динамические свойства?


Динамическое свойство — это свойство класса, которое создаётся "на ходу", без предварительного объявления в определении класса. Ранее PHP позволял добавлять такие свойства в любом месте программы, что могло приводить к путанице и трудно обнаруживаемым ошибкам.

Пример старого стиля:
class User {}

$user = new User();
$user->name = "Иван"; // Динамическое создание свойства
echo $user->name; // выведет "Иван"

Почему это устарело?


Создание динамических свойств признано устаревшим по ряду веских причин:
  1. Потеря прозрачности кода: Без явного объявления свойств сложно понять, какие свойства реально существуют в
...