Poslao первый бета-выпуск новой ветки языка программирования PHP 8. Релиз намечен на 26 ноября. Одновременно сформированы корректирующие выпуски PHP 7.4.9, 7.3.21 и
7.2.33, в которых устранены накопившиеся ошибки и уязвимости.
podrška именованных аргументов функций, позволяющих передававать в функцию значения в привязке к именам, т.е. можно передавать аргументы в произвольном порядке и определять необязательные аргументы. Например, «array_fill(start_index: 0, num: 100, value: 50)».
При вызове методов dozvoljeno применение оператора «?», который позволяет инициировать вызов только, если метод присутствует, что позволяет избежать лишних проверок на возврат значения «null». Например, «$dateAsString = $booking->getStartDate()?->asDateTimeString()»;
podrška vrste sindikata, definiranje kolekcija od dva ili više tipova (na primjer, “javna funkcija foo(Foo|Bar $input): int|float;”).
podrška atributi (napomene) koje vam omogućavaju da povežete metapodatke (kao što su informacije o tipu) za klase bez korištenja Docblock sintakse.
Поддержка выражений utakmica, которые в отличие от switch могут возвращать значения, поддерживают комбинирование условий, используют строгое сравнение типов и не требуют указания «break».
WeakMap za kreiranje objekata koji se mogu žrtvovati tokom sakupljanja smeća (na primjer, za pohranjivanje nepotrebnih kešova).
Sposobnost koristeći izraz “::class” za objekte (analogno pozivu get_class()).
Sposobnost definicije u bloku catch izuzetaka koji nisu vezani za varijable.
Sposobnost ostavljajući zarez iza posljednjeg elementa na listi parametara funkcije.
Novi interfejs Stringable za identifikaciju bilo koje vrste stringova ili podataka koji se mogu pretvoriti u string (za koje je dostupna metoda __toString()).
Nova funkcija str_contains(), pojednostavljeni analog strpos za određivanje pojavljivanja podniza, kao i funkcije str_starts_with() i str_ends_with() za provjeru podudaranja na početku i kraju niza.
Dodata funkcija fdiv(), koji izvodi operaciju dijeljenja bez greške prilikom dijeljenja sa nulom.
Promijenjeno logika spajanja nizova. Na primjer, izraz 'echo "sum:" . $a + $b' je prethodno interpretirano kao 'echo ("sum: " . $a) + $b', au PHP 8 će se tretirati kao 'echo "sum: " . ($a + $b)'.
Zategnuto provjera aritmetičkih i bitnih operacija, na primjer, izrazi "[] % [42]" i "$object + 4" će rezultirati greškom.
Implementirano stabilan algoritam za sortiranje u kojem se poredak identičnih vrijednosti čuva u različitim serijama.