Нова функціональність
Ядро PHP
Літерний префікс вісімкових цілих чисел
Восьмеричні цілі числа тепер можуть використати явний префікс 0o
0O
у цілочисленних літералах, аналогічно двійковим та шістнадцятковим цілочисленним літералам.
Loading...
Розпакування масиву за допомогою рядкових ключів
Добавлена поддержкарозпакування масивів з рядковими ключами
Loading...
Іменований аргумент після розпакування аргументу
Тепер можна вказати іменовані аргументи після розпакування аргументів. наприклад: foo(...$args, named: $arg).
Ключ із повним шляхом при завантаженні файлів
При завантаженні файлів з'явився новий ключ full_path
, який містить повний шлях (а не тільки відносний) завантаженого файлу. Призначений для використання разом з HTML-атрибутом webkitdirectory.
Перерахування
Добавлена поддержкаперерахувань
Файбери
Добавлена поддержкафайберів
Callback-функції як об'єкти першого класу
Замикання для callback-функцій тепер можна створювати синтаксисом. myFunc(...)
, який ідентичний синтаксисуClosure::fromCallable('myFunc')
Зауваження
...
является частью синтаксиса, а не пропуском.
Перетин типів
Добавлена поддержкаперетину типів
Застереження
Перетин типів не можна використовувати разом з об'єднанням типів
Тип never
Доданий новий тип значення, що повертається never. Тип свідчить про те, що функція чи викликає exit(), або викидає виняток, або завершується.
new
в инициализации класса
Тепер можна використовувати вирази new ClassName()
як значення за умовчанням для параметра, статичної змінної, ініціалізаторів глобальних констант і як аргументи атрибутів. Тепер об'єкти також можна передавати в define()
Readonly-властивості
Добавлена поддержкаreadonly-властивостей.
Остаточні константи класу
Добавлена поддержкамодифікатора final щодо констант класу. Крім того, константи інтерфейсу за умовчанням стають перевизначуваними.
CURL
Добавлена опция**CURLOPT_DOH_URL
**
Додані параметри для сертифіката BLOB-об'єкта, доступні з libcurl >= 7.71.0:
CURLOPT_ISSUERCERT_BLOB
CURLOPT_PROXY_ISSUERCERT
CURLOPT_PROXY_ISSUERCERT_BLOB
CURLOPT_PROXY_SSLCERT_BLOB
CURLOPT_PROXY_SSLKEY_BLOB
CURLOPT_SSLCERT_BLOB
CURLOPT_SSLKEY_BLOB
Добавлен классCURLStringFile, який можна використовувати для надсилання файлу з рядка (string), а не з файлу:
Loading...
FPM
Доданий формат статусу openmetrics. Prometheus може використовувати його для отримання метрик FPM.
Додано новий пул для диспетчера динамічних процесів під назвою pm.max_spawn_rate
. Він дозволяє запускати кілька дочірніх процесів швидшими темпами, якщо обрано динамічний pm. Значення за замовчуванням - 32
, Яке раніше було фіксованим значенням.
GD
Поддержка Avif теперь доступна с помощьюimagecreatefromavif() і imageavif()якщо libgd був зібраний з підтримкою Avif.
Hash
Следующие функцииhash() hash_file() і hash_init() тепер підтримують додатковий необов'язковий аргумент options
який можна використовувати для передачі специфічних для алгоритму даних.
MurmurHash3
Добавлена поддержкаMurmurHash3
за допомогою потокової передачі. Реалізовано такі варіанти:
- murmur3a, 32-бітовий хеш
- murmur3c, 128-розрядний хеш для x86
- murmur3f, 128-розрядний хеш для x64
Початковий стан хешування можна передати за допомогою ключа seed
у масиві options
, наПриклад:
Loading...
Допустимое начальное значение находится в диапазоне от до певного платформою значення **UINT_MAX
**зазвичай - 4294967295
xxHash
Добавлена поддержкаxxHash
. Реалізовано такі варіанти:
- xxh32, 32-bit hash
- xxh64, 64-bit hash
- xxh3, 64-bit hash
- xxh128, 128-bit hash
Початковий стан хешування можна передати за допомогою ключа seed
у масиві options
, наПриклад:
Loading...
Використання секрету також підтримується шляхом передачі ключа secret
у масиві options
:
Loading...
Якість секрету користувача має вирішальне значення для якості хешу результату. Для секрету рекомендується використовувати максимально можливу ентропію.
MySQLi
Нова INI-директива mysqli.local_infile_directory
Додано INI-директиву mysqli.local_infile_directory, за допомогою якої можна вказати каталог, з якого дозволено завантаження файлів. Це має сенс тільки якщо mysqli.allow_local_infile не включено, оскільки в цьому випадку дозволено всі каталоги.
Прив'язка параметрів під час виконання
Тепер можна прив'язувати параметри, передавши їх у вигляді масиву mysqli_stmt::execute(). Усі значення будуть прив'язані як рядки. Дозволено лише облікові масиви. Ця нова функція недоступна, якщо MySQLi скомпільовано з libmysqlclient.
Loading...
Новий метод mysqli_result::fetch_column()
Добавленmysqli_result::fetch_column() для вибірки єдиного скалярного значення набору результатів. Новий метод приймає необов'язковий параметр column
, що починається з 0, у вигляді цілого числа (int), що вказує з якого стовпця робити вибірку.
Loading...
PDO
Добавлен атрибут**PDO::MYSQL_ATTR_LOCAL_INFILE_DIRECTORY
**, який можна використовувати для вказівки каталогу, з якого можна завантажити файли. Це має сенс лише в тому випадку, якщо PDO::MYSQL_ATTR_LOCAL_INFILE
не включено, оскільки в цьому випадку дозволено всі каталоги.
PDO_SQLite
Підтримується новий елемент "file:"
у DSN-префіксі SQLite, який дозволяє вказувати додаткові прапори. Він не буде працювати, якщо увімкнено опцію open_basedir.
Loading...
POSIX
Додані константи POSIX_RLIMIT_KQUEUES
і POSIX_RLIMIT_NPTS
. Ці обмеження доступні лише у FreeBSD.
Стандартні функції
fputcsv() тепер приймає новий аргумент eol
, який дозволяє визначати послідовність кінця рядка, що настроюється, значення за замовчуванням залишається колишнім - "\n"
SPL
SplFileObject::fputcsv() тепер приймає новий аргумент eol
, який дозволяє визначати послідовність кінця рядка, що настроюється, значення за замовчуванням залишається колишнім - "\n"