Прадстаўлены першы бэта-выпуск новай галінкі мовы праграмавання 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" будуць прыводзіць да памылкі.
Рэалізаваны стабільны алгарытм сартавання, у якім пры розных запусках захоўваецца парадак прытрымлівання аднолькавых значэнняў.