Ir sākusies PHP 8 beta testēšana

Iesniedzis PHP 8 programmēšanas valodas jaunā atzara pirmā beta versija Izlaidums ir paredzēts 26. novembrī. Tajā pašā laikā PHP 7.4.9, 7.3.21 un koriģējošie laidieni
7.2.33, kas novērsa uzkrātās kļūdas un ievainojamības.

Galvenais jauninājumiem PHP 8:

  • Iespējot JIT kompilators, kuru izmantošana uzlabos produktivitāti.
  • atbalsts nosaukto funkciju argumenti, ļaujot funkcijai nodot vērtības saistībā ar nosaukumiem, t.i. Jūs varat nodot argumentus jebkurā secībā un definēt izvēles argumentus. Piemēram, "array_fill(start_index: 0, num: 100, value: 50)".
  • Zvanot metodes atļauta izmantojot operatoru “?”, kas ļauj sākt zvanu tikai tad, ja ir izmantota metode, kas ļauj izvairīties no nevajadzīgām pārbaudēm, lai atgrieztu vērtību “null”. Piemēram, "$dateAsString = $rezervēšana->getStartDate()?->asDateTimeString()";
  • atbalsts arodbiedrību veidi, definējot divu vai vairāku veidu kolekcijas (piemēram, “publiskā funkcija foo(Foo|Bar $input): int|float;”).
  • atbalsts atribūti (anotācijas), kas ļauj saistīt metadatus (piemēram, tipa informāciju) klasēm, neizmantojot Docblock sintaksi.
  • Izteiksmes atbalsts spēles, kas atšķirībā no slēdža var atgriezt vērtības, atbalstīt apvienošanas nosacījumus, izmantot stingrus tipu salīdzinājumus un neprasa “pārtraukuma” specifikāciju.

    $rezultāts = atbilstība($ievade) {
    0 => "sveiki",
    '1', '2', '3' => "pasaule",
    };

  • Saīsināta sintakse klašu definīcijas, ļaujot apvienot konstruktora definīciju un īpašības.
  • Jauns atgriešanas veids - statisks.
  • Jauns tips - sajaukts, ko var izmantot, lai noteiktu, vai funkcija pieņem dažāda veida parametrus.
  • Izteiksme mest rīkoties ar izņēmumiem.
  • Vāja karte lai izveidotu objektus, kurus var upurēt atkritumu savākšanas laikā (piemēram, lai uzglabātu nevajadzīgas kešatmiņas).
  • Iespēja izmantojot izteiksmi “::class” objektiem (analogs get_class() izsaukšanai).
  • Iespēja definīcijas izņēmumu nozvejas blokā, kas nav saistīti ar mainīgajiem.
  • Iespēja aiz pēdējā elementa funkcijas parametru sarakstā atstājot komatu.
  • Jauns interfeiss Stingrs lai identificētu visus virkņu veidus vai datus, ko var pārvērst virknē (kurai ir pieejama metode __toString()).
  • Jauna funkcija str_contains(), vienkāršots strpos analogs apakšvirknes rašanās noteikšanai, kā arī funkcijas str_starts_with() un str_ends_with(), lai pārbaudītu atbilstību virknes sākumā un beigās.
  • Pievienota funkcija fdiv(), kas veic dalīšanas darbību, neizmetot kļūdu dalot ar nulli.
  • Mainīts virkņu savienošanas loģika. Piemēram, izteiciens 'echo "sum:" . $a + $b' iepriekš tika interpretēts kā 'echo ("sum: " . $a) + $b', un PHP 8 tiks uzskatīts par "echo "sum: " . ($a + $b)”.
  • Savilkts pārbaudot aritmētiskās un bitu darbības, piemēram, izteicieni "[] % [42]" un "$object + 4" radīs kļūdu.
  • Īstenots stabils šķirošanas algoritms, kurā identisku vērtību secība tiek saglabāta dažādos palaijumos.
  • Avots: opennet.ru

Pievieno komentāru