Оператор Pipe з'явиться у PHP 8.1

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 08 липня, 2025
В PHP 8.5 з'явиться новий оператор "pipe" (|>), який дозволить PHP-розробникам ефективніше об'єднувати виклики функцій. Як саме цей оператор спростить ваш код і покращить його читабельність? Читайте далі, щоб дізнатися, як він змінить ваш підхід до обробки даних

Оператор Pipe Operator з'явиться у PHP 8.5, яка буде випущена 20 листопада 2025 року. Цей оператор обіцяє спростити роботу PHP-розробників, дозволяючи зручно з'єднувати декілька викликів, передаючи значення зліва направо.

Оператор |>, або “пайп”, приймає функцію з однією параметром справа і передає їй значення зліва, повертаючи результат виконання функції.

Pipe (|>) працює за принципом ліворуч-направо, передаючи значення (або результат виразу), яке знаходиться зліва, як перший і єдиний параметр до функції справа. Це означає, що наступні два фрагменти коду є логічно ідентичними:

З прийнятої RFC наведемо приклад, як передати рядок через кілька функцій. Оператор дозволяє створити єдиний ланцюг з кількох викликів з використанням функцій першого класу, що робить код читабельнішим. У наведеному прикладі використовується тимчасова змінна.

// Перед PHP 8.5, використовуючи тимчасову змінну
$temp = "Hello World";
$temp = htmlentities($temp);
$temp = str_split($temp);
$temp = array_map('strtoupper', $temp);
$temp = array_filter($temp, fn($v) => $v != 'O');
$result = $temp;

Якщо не використовувати тимчасову змінну, цей код буде виглядати так:

// Вкладений
$result = array_filter(
    array_map(
        'strtoupper',
        str_split(
            htmlentities("Hello World")
        )
    ),
    fn($v) => $v != 'O'
);

Оператор PHP 8.5 демонструє, як обробити простий рядок через декілька кроків, зберігаючи читабельність коду:

// Використання оператора pipe у PHP 8.5
$result = "Hello World"
    |> htmlentities(...)
    |> str_split(...)
    |> fn($x) => array_map('strtoupper', $x)
    |> fn($x) => array_filter($x, fn($v) => $v != 'O');

Версія з тимчасовою змінною виглядає майже такою ж читабельною, як і з використанням оператора пайп, але мені подобається, як оператор об'єднує кожен крок в єдину групу викликів.

# Дізнайтеся більше

Щоб дізнатися більше про оператор пайп, ознайомтеся з пропозицією RFC для повних деталей: rfc:pipe-operator-v3. Якщо ви хочете експериментувати з PHP 8.5, перший альфа-реліз був випущений 3 липня 2025 року. Перевірте сторінку todo:php85 для деталей.