Začelo se je beta testiranje PHP 8

Predložil prva beta izdaja nove veje programskega jezika PHP 8. Izid je predviden za 26. november. Hkrati so bile izdane popravne izdaje PHP 7.4.9, 7.3.21 in
7.2.33, ki je odpravil nakopičene napake in ranljivosti.

Glavni inovacije 8 PHP:

  • Vključenost JIT prevajalnik, katerih uporaba bo izboljšala produktivnost.
  • Podpora poimenovani argumenti funkcije, ki vam omogočajo, da funkciji posredujete vrednosti v povezavi z imeni, tj. Argumente lahko posredujete v poljubnem vrstnem redu in definirate neobvezne argumente. Na primer, "array_fill(start_index: 0, num: 100, value: 50)".
  • Pri klicanju metod dovoljene z uporabo operatorja “?”, ki vam omogoča, da začnete klic le, če je metoda prisotna, s čimer se izognete nepotrebnim preverjanjem vračanja vrednosti “null”. Na primer, "$dateAsString = $booking->getStartDate()?->asDateTimeString()";
  • Podpora vrste sindikatov, ki definirajo zbirke dveh ali več vrst (na primer »javna funkcija foo(Foo|Bar $input): int|float;«).
  • Podpora lastnosti (opombe), ki vam omogočajo povezovanje metapodatkov (kot so informacije o vrsti) z razredi brez uporabe sintakse Docblock.
  • Podpora za izražanje ujemajo, ki za razliko od switcha lahko vrne vrednosti, podpira združevanje pogojev, uporablja stroge primerjave tipov in ne zahteva specifikacije »break«.

    $rezultat = ujemanje($vnos) {
    0 => "zdravo",
    '1', '2', '3' => “svet”,
    };

  • Skrajšana sintaksa definicije razreda, kar vam omogoča kombiniranje definicije konstruktorja in lastnosti.
  • Nova vrsta vračila - statična.
  • Nova vrsta - mešano, s katerim lahko ugotovite, ali funkcija sprejema parametre različnih vrst.
  • Izraz met obravnavati izjeme.
  • WeakMap za ustvarjanje predmetov, ki jih je mogoče žrtvovati med zbiranjem smeti (na primer za shranjevanje nepotrebnih predpomnilnikov).
  • Priložnost z uporabo izraza “::class” za objekte (analogno klicu get_class()).
  • Priložnost definicije v bloku catch izjem, ki niso vezane na spremenljivke.
  • Priložnost pustite vejico za zadnjim elementom na seznamu funkcijskih parametrov.
  • Nov vmesnik Nanizna za identifikacijo vseh vrst nizov ali podatkov, ki jih je mogoče pretvoriti v niz (za kar je na voljo metoda __toString().
  • Nova funkcija str_contains(), poenostavljen analog strpos za ugotavljanje pojavljanja podniza, kot tudi funkciji str_starts_with() in str_ends_with() za preverjanje ujemanja na začetku in koncu niza.
  • Dodana funkcija fdiv(), ki izvede operacijo deljenja brez vrženja napake pri deljenju z ničlo.
  • Spremenjeno logiko spajanja nizov. Na primer izraz 'echo "sum:" . $a + $b' je bilo prej razloženo kot 'echo ("sum: " . $a) + $b', v PHP 8 pa bo obravnavano kot 'echo "sum: ". ($a + $b)'.
  • Zategnjen preverjanje aritmetičnih in bitnih operacij, na primer, izraza "[] % [42]" in "$object + 4" bosta povzročila napako.
  • Izvedeno stabilen algoritem razvrščanja, v katerem se vrstni red enakih vrednosti ohrani v različnih vožnjah.
  • Vir: opennet.ru

Dodaj komentar