Beta testiranje PHP 8 je počelo

Poslao первый бета-выпуск новой ветки языка программирования PHP 8. Релиз намечен на 26 ноября. Одновременно сформированы корректирующие выпуски PHP 7.4.9, 7.3.21 и
7.2.33, в которых устранены накопившиеся ошибки и уязвимости.

Glavni inovacije PHP 8:

  • Uključenost JIT kompajler, čija će upotreba poboljšati produktivnost.
  • 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».

    $result = match($input) {
    0 => «hello»,
    ‘1’, ‘2’, ‘3’ => «world»,
    };

  • Skraćena sintaksa definicije klase, što vam omogućava da kombinujete definiciju konstruktora i svojstva.
  • Nova vrsta povrata - statički.
  • Novi tip - pomešano, koji se može koristiti za određivanje da li funkcija prihvaća parametre različitih tipova.
  • Izraz bacanje za obradu izuzetaka.
  • 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.
  • izvor: opennet.ru

Dodajte komentar