Začelo se je beta-testiranje PHP 8

Представлен prvi beta-izdaja nove grane programskog jezika PHP 8. Izdanje je zakazano za 26. novembar. Istovremeno su formirana korektivna izdanja PHP 7.4.9, 7.3.21 i
7.2.33, u kojima su ispravljene nagomilane greške i ranjivosti.

Glavne novosti PHP 8:

  • Vključitev JIT-kompilatorja, katerega uporaba bo omogočila povečanje zmogljivosti.
  • Podpora imenovanih argumenata funkcija, koji omogućavaju slanje vrednosti u funkciju vezano za imena, tj. moguće je slati argumente u proizvoljnom redosledu i određivati neobavezne argumente. Na primer, «array_fill(start_index: 0, num: 100, value: 50)».
  • Pri pozivu metoda dovoljeno korisćenje operatora «?», koji omogućava iniciranje poziva samo ako je metoda prisutna, što omogućava izbegavanje suvišnih provera na povratnu vrednost «null». Na primer, «$dateAsString = $booking->getStartDate()?->asDateTimeString()»;
  • Podpora union-tipov, ki definirajo zbirke dveh ali več tipov (na primer „public function foo(Foo|Bar $input): int|float;“).
  • Podpora atributov (annotacij), ki omogočajo povezovanje metapodatkov (na primer informacije o tipih) s razredi brez uporabe Docblock sintakse.
  • Podrška za izraze match, koji za razliku od switch mogu vraćati vrednosti, podržavaju kombinovanje uslova, koriste strogo poređenje tipova i ne zahtevaju navođenje «break».

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

  • Poenostavljena sintaksa za definicijo razredov, ki omogoča združitev definicije konstruktorja in lastnosti.
  • Nova vrsta vrnjenih vrednosti — static.
  • Nova vrsta — mixed, ki se lahko uporablja za določitev sprejemanja funkcij različnih tipov parametrov.
  • Izraz throw za obvladovanje izjem.
  • WeakMap za ustvarjanje objektov, ki jih lahko žrtvujemo pri čiščenju pomnilnika (na primer za shranjevanje neobveznih predpomnilnikov).
  • Možnost uporabe izraza „::class“ za objekte (podobno kot klic get_class()).
  • Možnost določitev v catch bloku izjem, ki niso vezane na spremenljivke.
  • Možnost izpuščanje vejice po zadnjem elementu v seznamu parametrov funkcije.
  • Nov vmesnik Stringable za identifikacijo vseh vrst nizov ali podatkov, ki jih je mogoče pretvoriti v niz (za katere je na voljo metoda __toString()).
  • Nova funkcija str_contains(), poenostavljena različica strpos za določitev prisotnosti podniza, kot tudi funkcij str_starts_with() in str_ends_with() za preverjanje ujemanj na začetku in na koncu niza.
  • Dodana funkcija fdiv(), ki izvaja operacijo deljenja brez izpisa napake v primeru deljenja z nič.
  • Spremenjena logika povezovanja nizov. Na primer, izraz ‘echo „sum: “ . $a + $b’ je bil prej interpretiran kot ‘echo („sum: “ . $a) + $b’, zdaj pa bo v PHP 8 obdelan kot ‘echo „sum: “ . ($a + $b)’.
  • Zaostrena preverba aritmetičnih in bitnih operacij, na primer, izrazi „[] % [42]“ in „$object + 4“ bodo povzročili napako.
  • Izvedeno stabilen algoritme za razvrščanje, ki pri različnih zagonih ohranja vrstni red enakih vrednosti.
  • Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster