Жіберген первый бета-выпуск новой ветки языка программирования 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()»;
қолдау одақ түрлері, екі немесе одан да көп түрлердің жинақтарын анықтау (мысалы, “жалпыға ортақ функция foo(Foo|Bar $input): int|float;”).
қолдау атрибуттар (аннотациялар) Docblock синтаксисін пайдаланбай, метадеректерді (мысалы, түр туралы ақпарат) сыныптарға байланыстыруға мүмкіндік береді.
Поддержка выражений матч, которые в отличие от switch могут возвращать значения, поддерживают комбинирование условий, используют строгое сравнение типов и не требуют указания «break».
Әлсіз карта қоқыс жинау кезінде құрбан болуға болатын нысандарды жасау (мысалы, қажетсіз кэштерді сақтау үшін).
Қабілеті нысандар үшін “::class” өрнегін қолдану (get_class() шақыруының аналогы).
Қабілеті айнымалы мәндерге байланбаған ерекшеліктерді ұстау блогындағы анықтамалар.
Қабілеті функция параметрлері тізіміндегі соңғы элементтен кейін үтір қалдыру.
Жаңа интерфейс Жіпті жолға түрлендіруге болатын кез келген жол түрлерін немесе деректерді анықтау үшін (олар үшін __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]" және "$объект + 4" өрнектері қатеге әкеледі.
Орындалды тұрақты сұрыптау алгоритмі, онда бірдей мәндердің реті әртүрлі жүгірістерде сақталады.