Рубріки: Новини

Мова програмування PHP оновлена до версії 8.4

Дмитро Сімагін

Після року розробки представлено реліз мови програмування PHP 8.4. Нова версія включає кілька важливих оновлень, серед яких варто виділити:

  • Запропоновано нову реалізацію JIT-компілятора, побудовану на базі IR Framework. Додано підтримку прикріплення обробників властивостей (property hook), які підтримують додачу додаткової логіки. Це дає можливість значно скоротити обсяг коду.
  • Дозволено вказівку посилань на методи конструкції “new” без відокремлювальних дужок. Тобто. замість “$name = (new MyClass())->method()” тепер можна вказувати “$name = new MyClass()->method()“.
  • Додано можливість асиметричного управління видимістю властивостей об’єктів (public, private, protected), окремо для операцій запису (set) та читання (get).
  • Надано штатну підтримку “ледачих” об’єктів (lazy), ініціалізація яких здійснюється в момент першого використання.
  • Додано атрибут “#[\Deprecated]“, призначений для позначення застарілих функцій, класів та методів.
  • Додані методи DateTime::getMicrosecond() та DateTimeImmutable::setMicrosecond($microsecond) для отримання та встановлення часу з мікросекундною точністю, а також метод DateTime::createFromTimestamp().
  • Додані нові функції mb_trim(), mb_ltrim(), mb_rtrim(), mb_ucfirst(), mb_lcfirst(), bcceil(), bcdivmod(), bcfloor() та bcround(), pcntl_getcpu(), pcntl_getc , pcntl_setns(), pcntl_waitid(), http_get_last_response_headers(), http_clear_last_response_headers(), fpow().
  • Операції exit та die тепер можна викликати у формі повноцінних функцій, які допускається передавати як аргумент у інші функції. Раніше можливості функцій exit() і die() були дуже обмежені.
  • Додано зміни, що ускладнюють експлуатацію вразливостей, викликаних виходом за межі буфера, а також тих, які посилюють рандомізацію імен файлів, що створюються через функцію tempnam().
  • Оголошено застарілою поведінку, при якій для параметрів функцій із значенням null, що присвоєно за замовчуванням, автоматично дозволялося присвоєння значень null.
  • Оголошено застарілими низку констант.

Також варто відмітити випуск статичного аналізатора PHPStan 2.0, який дозволяє знаходити помилки в коді PHP без його виконання та використання unit-тестів. 

Останні статті

Коли баг гірший за вірус: помилка в коді перетворила шифрувальник Vect на «винищувача» файлів

Фахівці з кібербезпеки виявили критичну помилку в новому вірусі Vect, через яку відновлення даних стає…

29.04.2026

Amazon Quick: персональний агент від AWS для повної автоматизації робочих завдань

Компанія AWS офіційно представила десктопний застосунок Amazon Quick — персонального ШІ-асистента, який працює в браузері,…

29.04.2026

Anthropic запускає Claude for Creative Work: конектори для творчої роботи

Компанія Anthropic випустила дев'ять нових конекторів Claude, які поєднують віртуального помічника з креативними інструментами на…

29.04.2026

NASA випробувала літієвий двигун для польотів на Марс. Рахуємо, скільки це в павербанках

Космічна агенція NASA повідомила, що в лютому 2026 року інженери Лабораторії реактивного руху (JPL) у…

29.04.2026

Garmin Claude: тепер можна контролювати роботу Claude Code через фітнес-трекер

Шведський розробник Єнс Ларссон опублікував на GitHub відкритий проєкт Garmin Claude — інструмент, завдяки якому…

29.04.2026

Вінтажний чат-бот: вчені створили LLM, навчену виключно на історичних текстах до 1930 року

Група з трьох дослідників під керівництвом колишнього науковця OpenAI Алека Редфорда випустила незвичну мовну модель…

29.04.2026