PHP 8.3: Що нового?

Це наступний великий реліз мови програмування PHP. Його випуск заплановано на 2023 рік. Сьогодні ми разберемо нові функціі, які будуть додані.

Додано функцію json_validate

У PHP 8.3 додано нову функцію json_validate, яка повертає true або false, якщо заданий рядок є коректним рядком JSON.

json_validate('[1, 2, 3]'); // true
json_validate('{1, 2, 3]'); // false

Нарешті! Бувай json_decode() ≠ null!

Докладніше тут: json_validate

Підтримка динамічної константи класу та члена Enum

PHP 8.3 і вище підтримує вибірку констант класів і об'єктів Enum з іменем змінної.

final class EaxmpleClass {
    public const EXAMPLE_CONST = 1;
}

$constName = 'EXAMPLE_CONST';

echo EaxmpleClass::{$constName};

Те саме для Enum

enum ExampleEnum: int {
    case Amount = 42;
}

$enumName = 'Amount';

echo ExampleEnum::{$enumName}->value;

Стара функція \constant() залишилась.

Як на мене, є більш важливі речі які слід було б зробити, але маємо що маємо.

Докладніше тут: тик

Нова функція gc_status()

Функція gc_status() повертає статистику роботи збирача сміття PHP, яка містить інформацію про те, чи запущений збирач сміття, чи є він захищеним від втрати даних та який обсяг буфера використовується. Ці дані можуть бути корисними при налагодженні довготривалих PHP-додатків з метою виявлення та оптимізації використання пам'яті.

Це дуже корисна функція, коли вам потрібно оптимізувати дуже важкий скрипт, який використовує багато пам'яті.

Докладніше тут: тик

Нові функціі для \Random\Randomizer

Клас \Random\Randomizer в PHP 8.3 підтримує новий метод getBytesFromString, який повертає випадкову послідовність чисел запитуваної довжини (параметр $length), що містить лише байти із запитуваної серії байт (параметр $string)

Він не може ефективно перемішувати багатобайтові символи, такі як емодзі, CJK-символи та східні/індоєвропейські символи.

Приклад застосування:

$randomizer = new Random\Randomizer();
$symbolList = '0123456789ABCDEFGHJKMNPQRSTVWXYZ';

$randomizer->getBytesFromString($symbolList, 5); // "5YH8T"
$randomizer->getBytesFromString($symbolList, 5); // "XBZ9P"

Детальніше тут: тик

Розширення Random у PHP 8.3 додає методи \Random\Randomizer::getFloat() та \Random\Randomizer::nextFloat(), які генерують випадкове значення з плаваючою комою.

Також з'явилося нове зчислення \Random\IntervalBoundary Enum, яке можна використовувати як параметр методу getFloat, щоб вказати, чи повинні межі $min і $max бути включними чи ні.

Приклад застосування:

$randomizer = new Random\Randomizer();
$randomizer->getFloat(0, 10, \Random\IntervalBoundary::OpenOpen); // 9.3835746900717
$randomizer->getFloat(0, 10, \Random\IntervalBoundary::OpenOpen); // 3.065611591453

Новий метод \Random\Randomizer::nextFloat() функціонально ідентичний методу \Random\Randomizer::getFloat(0, 1, \Random\IntervalBoundary::ClosedOpen).

JavaScript Math.random() також подібний до \Random\Randomizer::nextFloat(), оскільки обидва вони повертають випадкове значення у діапазоні 0 <= та < 1.

Приклад застосування:

$randomizer = new Random\Randomizer();
$randomizer->nextFloat(); // 0.21185336351144

Детальніше тут: тик

Інформація взята з php.watch

Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
M
Myroslav@Itsimiro

439Прочитань
0Автори
5Читачі
На Друкарні з 15 квітня

Більше від автора

Вам також сподобається

Коментарі (3)

О, навіть такі довгочити тут є. Дякую за корисну інформацію!

Вам також сподобається