Iesniedzis первый бета-выпуск новой ветки языка программирования PHP 8. Релиз намечен на 26 ноября. Одновременно сформированы корректирующие выпуски PHP 7.4.9, 7.3.21 и
7.2.33, в которых устранены накопившиеся ошибки и уязвимости.
atbalsts именованных аргументов функций, позволяющих передававать в функцию значения в привязке к именам, т.е. можно передавать аргументы в произвольном порядке и определять необязательные аргументы. Например, «array_fill(start_index: 0, num: 100, value: 50)».
При вызове методов atļauta применение оператора «?», который позволяет инициировать вызов только, если метод присутствует, что позволяет избежать лишних проверок на возврат значения «null». Например, «$dateAsString = $booking->getStartDate()?->asDateTimeString()»;
atbalsts arodbiedrību veidi, definējot divu vai vairāku veidu kolekcijas (piemēram, “publiskā funkcija foo(Foo|Bar $input): int|float;”).
atbalsts atribūti (anotācijas), kas ļauj saistīt metadatus (piemēram, tipa informāciju) klasēm, neizmantojot Docblock sintaksi.
Поддержка выражений spēles, которые в отличие от switch могут возвращать значения, поддерживают комбинирование условий, используют строгое сравнение типов и не требуют указания «break».
Vāja karte lai izveidotu objektus, kurus var upurēt atkritumu savākšanas laikā (piemēram, lai uzglabātu nevajadzīgas kešatmiņas).
Iespēja izmantojot izteiksmi “::class” objektiem (analogs get_class() izsaukšanai).
Iespēja definīcijas izņēmumu nozvejas blokā, kas nav saistīti ar mainīgajiem.
Iespēja aiz pēdējā elementa funkcijas parametru sarakstā atstājot komatu.
Jauns interfeiss Stingrs lai identificētu visus virkņu veidus vai datus, ko var pārvērst virknē (kurai ir pieejama metode __toString()).
Jauna funkcija str_contains(), vienkāršots strpos analogs apakšvirknes rašanās noteikšanai, kā arī funkcijas str_starts_with() un str_ends_with(), lai pārbaudītu atbilstību virknes sākumā un beigās.
Pievienota funkcija fdiv(), kas veic dalīšanas darbību, neizmetot kļūdu dalot ar nulli.
Mainīts virkņu savienošanas loģika. Piemēram, izteiciens 'echo "sum:" . $a + $b' iepriekš tika interpretēts kā 'echo ("sum: " . $a) + $b', un PHP 8 tiks uzskatīts par "echo "sum: " . ($a + $b)”.
Savilkts pārbaudot aritmētiskās un bitu darbības, piemēram, izteicieni "[] % [42]" un "$object + 4" radīs kļūdu.
Īstenots stabils šķirošanas algoritms, kurā identisku vērtību secība tiek saglabāta dažādos palaijumos.