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

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

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

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

  • Які книги з JavaScript слід читати у 2024 році?

    Чому варто вивчати JavaScript у 2024 році? Які книги обрати для вивчення цієї мови програмування? У цій статті ми розглядаємо ключові аргументи на користь вивчення JavaScript у 2024 році та поділимося переліком ресурсів, які допоможуть вам у цьому.

    Теми цього довгочиту:

    Javascript
  • Android застосунок прямо з бліндажа. Пролог

    До повномасштабного вторгнення я спокійно працював Web-розробником. Створював сайти на WordPress, Vercel, інтернет-магазини на Magento 2 і постійно освоював якісь нові web-сервіси з метою покращення своєї роботи.

    Теми цього довгочиту:

    Android Development
  • Будемо робити застосунок для обліку фінансів

    Знайома вам ситуація, коли кошти, які мали бути витрачені на велику покупку якимось чином зникали до моменту цієї самої покупки? Болісний момент, який може стати тригером, що приведе вас до кращого життя. Теоретично. Але щоб це сталося, потрібно якось вести історію витрат.

    Теми цього довгочиту:

    Розробка

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

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

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

  • Які книги з JavaScript слід читати у 2024 році?

    Чому варто вивчати JavaScript у 2024 році? Які книги обрати для вивчення цієї мови програмування? У цій статті ми розглядаємо ключові аргументи на користь вивчення JavaScript у 2024 році та поділимося переліком ресурсів, які допоможуть вам у цьому.

    Теми цього довгочиту:

    Javascript
  • Android застосунок прямо з бліндажа. Пролог

    До повномасштабного вторгнення я спокійно працював Web-розробником. Створював сайти на WordPress, Vercel, інтернет-магазини на Magento 2 і постійно освоював якісь нові web-сервіси з метою покращення своєї роботи.

    Теми цього довгочиту:

    Android Development
  • Будемо робити застосунок для обліку фінансів

    Знайома вам ситуація, коли кошти, які мали бути витрачені на велику покупку якимось чином зникали до моменту цієї самої покупки? Болісний момент, який може стати тригером, що приведе вас до кращого життя. Теоретично. Але щоб це сталося, потрібно якось вести історію витрат.

    Теми цього довгочиту:

    Розробка