tanıtıldı первый бета-выпуск новой ветки языка программирования PHP 8. Релиз намечен на 26 ноября. Одновременно сформированы корректирующие выпуски PHP 7.4.9, 7.3.21 и
7.2.33, в которых устранены накопившиеся ошибки и уязвимости.
Destek именованных аргументов функций, позволяющих передававать в функцию значения в привязке к именам, т.е. можно передавать аргументы в произвольном порядке и определять необязательные аргументы. Например, «array_fill(start_index: 0, num: 100, value: 50)».
При вызове методов izin применение оператора «?», который позволяет инициировать вызов только, если метод присутствует, что позволяет избежать лишних проверок на возврат значения «null». Например, «$dateAsString = $booking->getStartDate()?->asDateTimeString()»;
Destek birlik türleri, iki veya daha fazla türden koleksiyonları tanımlamak (örneğin, "public function foo(Foo|Bar $input): int|float;").
Destek Öznitellikler (ek açıklamalar), Docblock sözdizimini kullanmadan meta verileri (tür bilgileri gibi) sınıflara bağlamanıza olanak tanır.
Поддержка выражений maç, которые в отличие от switch могут возвращать значения, поддерживают комбинирование условий, используют строгое сравнение типов и не требуют указания «break».
Zayıf Harita çöp toplama sırasında feda edilebilecek nesneler oluşturmak (örneğin, gereksiz önbellekleri depolamak için).
Fırsat nesneler için “::class” ifadesini kullanma (get_class() işlevini çağırmaya benzer).
Fırsat değişkenlere bağlı olmayan istisnaların catch bloğundaki tanımlar.
Fırsat işlev parametreleri listesindeki son öğeden sonra virgül bırakılır.
Yeni интерфейс dizilebilir dizeye dönüştürülebilecek herhangi bir dize türünü veya veriyi tanımlamak için (bunun için __toString() yöntemi kullanılabilir).
Yeni özellik str_contains(), bir alt dizenin oluşumunu belirlemek için strpos'un basitleştirilmiş bir analoğu ve ayrıca bir dizenin başındaki ve sonundaki eşleşmeleri kontrol etmek için str_starts_with() ve str_ends_with() işlevleri.
Eklenen işlev fdiv()Sıfıra bölme işleminde hata vermeden bölme işlemini gerçekleştiren.
Değiştirildi dize birleştirme mantığı. Örneğin, 'echo "sum:" ifadesi. $a + $b' daha önce 'echo ("sum: " . $a) + $b' olarak yorumlanıyordu ve PHP 8'de 'echo "sum: " olarak ele alınacak. ($a + $b)'.
Sıkılmış aritmetik ve bit işlemlerini kontrol etmek, örneğin "[] % [42]" ve "$object + 4" ifadeleri hatayla sonuçlanacaktır.
uygulandı Farklı çalışmalarda aynı değerlerin sırasının korunduğu kararlı bir sıralama algoritması.