Prasidėjo PHP 8 beta versijos testavimas

Įvesta pirmoji naujos PHP 8 programavimo kalbos šakos beta versija. Išleidimas numatytas lapkričio 26 d. Tuo pačiu metu korekciniai PHP 7.4.9, 7.3.21 ir
7.2.33, kuris pašalino susikaupusias klaidas ir spragas.

pagrindinis naujoves PHP 8:

  • Įjungimas JIT kompiliatorius, kurių naudojimas pagerins produktyvumą.
  • Remti įvardytos funkcijos argumentai, leidžiantys funkcijai perduoti reikšmes, susijusias su pavadinimais, t.y. Argumentus galite perduoti bet kokia tvarka ir apibrėžti pasirenkamus argumentus. Pavyzdžiui, "masyvas_užpildymas(start_index: 0, num: 100, value: 50)".
  • Kai skambina metodai leidžiama naudojant operatorių „?“, leidžiantį inicijuoti skambutį tik tada, kai yra metodas, todėl išvengiama nereikalingų „null“ vertės grąžinimo patikrų. Pavyzdžiui, "$dateAsString = $booking->getStartDate()?->asDateTimeString()";
  • Remti sąjungos tipai, apibrėžiantis dviejų ar daugiau tipų rinkinius (pvz., „viešoji funkcija foo(Foo|Bar $input): int|float;“).
  • Remti atributai (anotacijos), leidžiančios susieti metaduomenis (pvz., tipo informaciją) su klasėmis nenaudojant Docblock sintaksės.
  • Išraiškos palaikymas rungtynės, kuris, skirtingai nei jungiklis, gali grąžinti reikšmes, palaikyti derinimo sąlygas, naudoti griežtus tipų palyginimus ir nereikalauja „pertraukos“ specifikacijos.

    $rezultatas = atitiktis($įvestis) {
    0 => "labas",
    '1', '2', '3' => "pasaulis",
    };

  • Sutrumpinta sintaksė klasės apibrėžimai, leidžiantys derinti konstruktoriaus apibrėžimą ir savybes.
  • Naujas grąžinimo tipas - statinis.
  • Naujas tipas - mišrus, kurį galima naudoti norint nustatyti, ar funkcija priima skirtingų tipų parametrus.
  • Išraiška mesti tvarkyti išimtis.
  • Silpnas žemėlapis sukurti objektus, kuriuos būtų galima paaukoti renkant šiukšles (pavyzdžiui, saugoti nereikalingas talpyklas).
  • Galimybė naudojant išraišką „::class“ objektams (analogiškai kaip get_class()).
  • Galimybė apibrėžimai išimčių, nesusietų su kintamaisiais, bloke.
  • Galimybė po paskutinio elemento funkcijos parametrų sąraše paliekant kablelį.
  • Nauja sąsaja Styginiai identifikuoti bet kokius eilučių tipus ar duomenis, kuriuos galima konvertuoti į eilutę (kuriam galimas metodas __toString()).
  • Nauja funkcija str_contains(), supaprastintas strpos analogas, skirtas poeilutės atsiradimui nustatyti, taip pat funkcijos str_starts_with() ir str_ends_with(), skirtos atitikties tikrinimui eilutės pradžioje ir pabaigoje.
  • Pridėta funkcija fdiv(), kuris atlieka padalijimo operaciją nepakeldamas klaidos dalinant iš nulio.
  • Pasikeitė stygų sujungimo logika. Pavyzdžiui, išraiška „echo „sum:“ . $a + $b' anksčiau buvo interpretuojamas kaip 'echo ("sum: " . $a) + $b', o PHP 8 bus traktuojamas kaip 'echo "sum: " . ($a + $b)'.
  • Suveržtas tikrinant aritmetines ir bitų operacijas, pavyzdžiui, posakiai „[] % [42]“ ir „$object + 4“ sukels klaidą.
  • Įgyvendinta stabilus rūšiavimo algoritmas, kuriame išsaugoma identiškų reikšmių tvarka skirtinguose paleidimuose.
  • Šaltinis: opennet.ru

Добавить комментарий