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

Мова програмування 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-тестів. 

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

Amazon вводить обмеження на безкоштовне використання Kiro

Amazon Web Services (AWS) обмежує безкоштовне використання Kiro,  інструменту для вайб-кодингу, який має функціонал інтегрованого…

23.07.2025

Вийшов Python 3.14 RC1: реліз-кандидат з прискореним інтерпретатором

Команда Python оголосила про вихід першої версії реліз-кандидата Python 3.14. Це фінальна стадія перед повноцінним…

23.07.2025

16% працівників у США брешуть про використання штучного інтелекту, щоб догодити начальству

Результати опитування, проведеного компанією Howdy, свідчать про те, що кожен шостий американський працівник (16%) бреше…

23.07.2025

Oracle та OpenAI планують створити дата-центру Stargate на 4,5 ГВт

Oracle та OpenAI уклали угоду про створення дата-центру Stargate на 4,5 ГВт, повідомили Dev.ua. В…

22.07.2025

У Києві відбудеться святкування 10 років Ethereum

Ethereum Ukraine організовує офіційне святкування десятиріччя блокчейну Ethereum разом із його офіційним представництвом. Подія пройде…

22.07.2025

Ветерани з досвідом в IT можуть отримати до $20 000 на запуск tech-бізнесу

Міністерство цифрової трансформації України анонсує програму Veteran Venture Program від компанії SKELAR, яка надає шанс…

22.07.2025