📒 

PHP 8.3 — це остання еволюція популярної серверної мови програмування. У цій версії представлено низку нових функцій і вдосконалень, які надають розробникам більше інструментів для створення ефективних і масштабованих веб-додатків. У цій статті ми розглянемо ключові зміни, які будуть корисні для користувачів сервера.

Що нового в PHP 8.3

Версія PHP 8.3 має низку нових покращень та переваг у використанні. А також додавання нового типу функціональності, яка допоможе працювати з масивами. Багато нових реалізацій і оновлень наведено нижче

JIT-компіляція

У PHP 8.3 представлена ​​своєчасна компіляція (JIT) для покращення продуктивності виконання коду. Компіляція «точно вчасно» (JIT) перетворює байт-код PHP у машинний код під час виконання, що може значно прискорити роботу програм. Це особливо корисно для високонавантажених серверів, де потрібна максимальна продуктивність. Приклад JIT

php -d jit=on script.php

Додавання функції array_is_list

Функція array_is_list перевіряє, чи є масив списком. Це зручно під час роботи з масивами, де ключі починаються з 0 і йдуть послідовно. Це нововведення може бути корисним у сценаріях, коли вам потрібно визначити, чи є масив списком чи асоціативним масивом. Приклад використання array_is_list:

$array = [0 => 'apple', 1 => 'banana', 2 => 'cherry'];
var_dump(array_is_list($array)); // bool(true)

Покращення системи типів.

Це одне з важливих покращень у PHP 8.3, систему типів було вдосконалено. Тепер можна вказати тип для властивостей класу, а також для статичних методів. Це полегшить роботу з кодом, зменшить кількість можливих помилок і підвищить читабельність коду. Приклад використання специфікації типу для властивості класу:

class User {
    public int $id;
    public int $id;
}

Покращення функцій рядків

Було внесено нові функції та вдосконалено роботу з рядками. Наприклад, функція str_contains тепер може працювати з масивами рядків, надаючи більш зручний спосіб пошуку підрядків у масиві. Приклад використання str_contains із масивом рядків:

$array = ['apple', 'banana', 'cherry'];
var_dump(str_contains($array, 'banana')); //bool(true)