киргизилген первый бета-выпуск новой ветки языка программирования 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».
WeakMap таштанды чогултуу учурунда курмандыкка чалына турган объекттерди түзүү (мисалы, керексиз кэштерди сактоо үчүн).
мүмкүнчүлүк объекттер үчүн “::класс” туюнтмасын колдонуу (get_class() чалууга окшош).
мүмкүнчүлүк өзгөрмөлөргө байланбаган өзгөчөлүктөрдү кармоо блогундагы аныктамалар.
мүмкүнчүлүк функциянын параметрлеринин тизмесиндеги акыркы элементтен кийин үтүр калтыруу.
Жаңы интерфейс Stringable сапка айландырыла турган ар кандай сап түрлөрүн же берилиштерди аныктоо үчүн (бул үчүн __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" туюнтмалары катага алып келет.
Аткарылган туруктуу сорттоо алгоритми, мында бирдей маанилердин тартиби ар кандай жүрүүлөрдө сакталат.