Beta testiranje PHP 8 je počelo

Poslao prvo beta izdanje nove grane programskog jezika PHP 8. Izdanje je zakazano za 26. novembar. Istovremeno, korektivna izdanja PHP 7.4.9, 7.3.21 i
7.2.33, koji je eliminisao akumulirane greške i ranjivosti.

Glavni inovacije PHP 8:

  • Uključenost JIT kompajler, čija će upotreba poboljšati produktivnost.
  • podrška imenovani argumenti funkcije, koji vam omogućavaju da prenesete vrijednosti funkciji u odnosu na imena, tj. Možete proslijediti argumente bilo kojim redoslijedom i definirati opcione argumente. Na primjer, "ispuna_niza(početni_indeks: 0, broj: 100, vrijednost: 50)".
  • Prilikom pozivanja metoda dozvoljeno koristeći operator “?”, koji vam omogućava da pokrenete poziv samo ako je metoda prisutna, čime se izbjegavaju nepotrebne provjere za vraćanje “null” vrijednosti. Na primjer, "$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.
  • Podrška ekspresiji utakmica, koji, za razliku od switch-a, može vratiti vrijednosti, podržava uslove kombiniranja, koristi stroga poređenja tipova i ne zahtijeva specifikaciju "prekidanja".

    $rezultat = podudaranje($input) {
    0 => "zdravo",
    '1', '2', '3' => “svijet”,
    };

  • 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