Beta testiranje PHP 8 je počelo

Predstavljeno prvo beta izdanje nove grane programskog jezika PHP 8. Izdanje je zakazano za 26. studenog. U isto vrijeme, ispravna izdanja PHP-a 7.4.9, 7.3.21 i
7.2.33, koji je eliminirao akumulirane pogreške i ranjivosti.

Glavni inovacije PHP 8:

  • uključenje JIT kompajlerčijom će se upotrebom poboljšati produktivnost.
  • podrška imenovani argumenti funkcije, koji vam omogućuju prosljeđivanje vrijednosti funkciji u odnosu na imena, tj. Možete proslijediti argumente bilo kojim redoslijedom i definirati neobavezne argumente. Na primjer, "array_fill(start_index: 0, num: 100, value: 50)".
  • Prilikom pozivanja metoda dozvoljen pomoću operatora “?”, koji vam omogućuje pokretanje poziva samo ako je metoda prisutna, čime se izbjegavaju nepotrebne provjere za vraćanje vrijednosti “null”. Na primjer, "$dateAsString = $booking->getStartDate()?->asDateTimeString()";
  • podrška vrste sindikata, definirajući zbirke od dva ili više tipova (na primjer, “javna funkcija foo(Foo|Bar $input): int|float;”).
  • podrška atributi (komentacije) koje vam omogućuju vezanje metapodataka (kao što su informacije o tipu) za klase bez korištenja Docblock sintakse.
  • Podrška za izražavanje utakmica, koji, za razliku od switcha, može vratiti vrijednosti, podržava uvjete kombiniranja, koristi stroge usporedbe tipova i ne zahtijeva specifikaciju "break".

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

  • Skraćena sintaksa definicije klasa, omogućujući vam kombiniranje definicije konstruktora i svojstava.
  • Nova vrsta povrata - statički.
  • Novi tip - mješovit, koji se može koristiti za određivanje prihvaća li funkcija parametre različitih vrsta.
  • izraz baciti rukovati iznimkama.
  • WeakMap za stvaranje objekata koji se mogu žrtvovati tijekom skupljanja smeća (na primjer, za pohranjivanje nepotrebnih predmemorija).
  • Prilika koristeći izraz “::class” za objekte (analogno pozivu get_class()).
  • Prilika definicije u catch bloku iznimaka koje nisu vezane na varijable.
  • Prilika ostavljajući zarez iza zadnjeg elementa u popisu parametara funkcije.
  • Novo sučelje Nanizano za identifikaciju svih vrsta nizova ili podataka koji se mogu pretvoriti u niz (za što je dostupna metoda __toString().
  • Nova značajka str_sadrži(), 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.
  • Dodana značajka fdiv(), koji izvodi operaciju dijeljenja bez izbacivanja pogreške pri dijeljenju s nulom.
  • Promijenjeno logika spajanja nizova. Na primjer, izraz 'echo "sum:" . $a + $b' se prethodno tumačio kao 'echo ("sum: " . $a) + $b', au PHP-u 8 će se tretirati kao 'echo "sum: ". ($a + $b)'.
  • Zategnuto provjera aritmetičkih i bitnih operacija, na primjer, izrazi "[] % [42]" i "$objekt + 4" rezultirat će pogreškom.
  • Provedeno stabilan algoritam sortiranja u kojem se redoslijed identičnih vrijednosti čuva u različitim izvođenjima.
  • Izvor: opennet.ru

Dodajte komentar