PHP 8:n beta-testaus on alkanut

Lähettäjä PHP 8 -ohjelmointikielen uuden haaran ensimmäinen betaversio, joka julkaistaan ​​26. marraskuuta. Samaan aikaan korjausjulkaisut PHP 7.4.9, 7.3.21 ja
7.2.33, joka eliminoi kertyneet virheet ja haavoittuvuudet.

Pääasiallinen innovaatioita PHP 8:

  • sisällyttäminen JIT-kääntäjä, jonka käyttö parantaa tuottavuutta.
  • Tukea nimetyt funktion argumentit, joiden avulla voit välittää arvoja funktiolle nimien suhteen, ts. Voit välittää argumentit missä tahansa järjestyksessä ja määrittää valinnaisia ​​argumentteja. Esimerkiksi "array_fill(aloitusindeksi: 0, numero: 100, arvo: 50)".
  • Kun soitat menetelmiä sallittu käyttämällä "?"-operaattoria, jonka avulla voit aloittaa puhelun vain, jos menetelmä on olemassa, mikä välttää turhat "nolla"-arvon palauttamisen tarkistukset. Esimerkiksi "$dateAsString = $varaus->getStartDate()?->asDateTimeString()";
  • Tukea liiton tyyppejä, joka määrittää kahden tai useamman tyypin kokoelmat (esimerkiksi "julkinen funktio foo(Foo|Bar $syöte): int|float;").
  • Tukea attribuutteja (merkinnät), joiden avulla voit sitoa metatietoja (kuten tyyppitietoja) luokkiin ilman Docblock-syntaksia.
  • Ilmaisun tuki ottelu, joka toisin kuin kytkin, voi palauttaa arvoja, tukea ehtojen yhdistämistä, käyttää tiukkoja tyyppivertailuja eivätkä vaadi "break" määrittelyä.

    $tulos = vastaa($syöttö) {
    0 => "hei",
    '1', '2', '3' => "maailma",
    };

  • Lyhennetty syntaksi luokkamääritelmiä, jolloin voit yhdistää konstruktorin määritelmän ja ominaisuudet.
  • Uusi palautustyyppi - staattinen.
  • Uusi tyyppi - sekoitettu, jonka avulla voidaan määrittää, hyväksyykö funktio erityyppisiä parametreja.
  • ilme heittää käsitellä poikkeuksia.
  • Heikko kartta luoda kohteita, jotka voidaan uhrata roskien keräämisen aikana (esimerkiksi tarpeettomien välimuistien tallentamiseen).
  • Tilaisuus käyttämällä lauseketta "::class" objekteille (analogisesti get_class()-kutsulle).
  • Tilaisuus määritelmät poikkeuksiin, joita ei ole sidottu muuttujiin.
  • Tilaisuus jättämällä pilkku funktioparametriluettelon viimeisen elementin jälkeen.
  • Uusi käyttöliittymä Stringable tunnistaa merkkijonotyypit tai tiedot, jotka voidaan muuntaa merkkijonoksi (joille on käytettävissä menetelmä __toString()).
  • Uusi ominaisuus str_contains(), yksinkertaistettu strpos-analogi alimerkkijonon esiintymisen määrittämiseen, sekä funktiot str_starts_with() ja str_ends_with() merkkijonon alussa ja lopussa olevien osumien tarkistamiseksi.
  • Lisätty toiminto fdiv(), joka suorittaa jakotoiminnon antamatta virhettä nollalla jakamisessa.
  • Muutettu merkkijonojen yhdistämislogiikka. Esimerkiksi lauseke 'echo "sum:" . $a + $b' tulkittiin aiemmin nimellä 'echo ("sum: " . $a) + $b', ja PHP 8:ssa sitä käsitellään nimellä 'echo "sum: " . ($a + $b)'.
  • Kiristetty aritmeettisten ja bittioperaatioiden tarkistaminen, esimerkiksi lausekkeet "[] % [42]" ja "$object + 4" johtavat virheeseen.
  • Toteutettu vakaa lajittelualgoritmi, jossa identtisten arvojen järjestys säilyy eri ajoissa.
  • Lähde: opennet.ru

Lisää kommentti