представлений перший бета-випуск нової гілки мови програмування PHP 8. Реліз заплановано на 26 листопада. Одночасно сформовані коригувальні випуски PHP 7.4.9, 7.3.21 та
7.2.33, у яких усунуті помилки та вразливості, що накопичилися.
Підтримка іменованих аргументів функцій, дозволяють передавати на функцію значення прив'язці до імен, тобто. можна передавати аргументи у довільному порядку та визначати необов'язкові аргументи. Наприклад, "array_fill(start_index: 0, num: 100, value: 50)".
При викликі методів дозволено застосування оператора «?», який дозволяє ініціювати виклик лише, якщо метод присутній, що дозволяє уникнути зайвих перевірок повернення значення «null». Наприклад, $dateAsString = $booking->getStartDate()?->asDateTimeString()»;
Підтримка union-типів, визначальних колекції двох і більше типів (наприклад «public function foo(Foo|Bar $input): int|float;»).
Підтримка атрибутів (анотацій), що дозволяють прив'язати метадані (наприклад, відомості про типи) до класів без використання синтаксису Docblock.
Підтримка виразів матч, які, на відміну від switch, можуть повертати значення, підтримують комбінування умов, використовують суворе порівняння типів і не вимагають вказівки «break».
WeakMap для створення об'єктів, якими можна пожертвувати під час складання сміття (наприклад, для зберігання необов'язкових кешів).
Можливість використання виразу «::class» для об'єктів (аналог виклику get_class()).
Можливість визначення у блоці catch винятків, не прив'язаних до змінних.
Можливість залишити символ комою після останнього елемента у списку параметрів функції.
Новий інтерфейс Струнний для ідентифікації будь-яких рядкових типів або даних, яких можна перетворити на рядок (для яких доступний метод __toString()).
Нова функція str_contains(), спрощений аналог strpos для визначення входження підрядка, а також функції str_starts_with() та str_ends_with() для перевірки збігів на початку та в кінці рядка.
Додана функція fdiv(), що виконує операцію поділу без виведення помилки у разі поділу на нуль
Змінено логіка з'єднання рядків. Наприклад, вираз 'echo «sum:». $a + $b' раніше інтерпретувалося як 'echo («sum:» . $a) + $b', а в PHP 8 буде оброблено як 'echo «sum:». ($a + $b)'.
Посилена перевірка арифметичних та бітових операцій, наприклад, вирази «[] % [42]» та «$object + 4» призводитимуть до помилки.
Реалізовано стабільний алгоритм сортування, у якому за різних запусках зберігається порядок слідування однакових значень.