PHP 8ren beta probak hasi dira

Bidalita PHP 8 programazio-lengoaiaren adar berriaren lehen beta bertsioa. Azaroaren 26rako dago aurreikusita. Aldi berean, PHP 7.4.9, 7.3.21 eta XNUMX bertsio zuzentzaileak
7.2.33, metatutako akatsak eta ahuleziak ezabatu zituena.

Nagusia berrikuntzak PHP 8:

  • sartzea JIT konpilatzailea, eta horren erabilerak produktibitatea hobetuko du.
  • Lagundu izendatutako funtzioen argumentuak, izenekin erlazionatutako funtzioari balioak pasatzeko aukera emanez, hau da. Argumentuak edozein ordenatan pasa ditzakezu eta aukerako argumentuak defini ditzakezu. Adibidez, "array_fill(hasi_indizea: 0, num: 100, balioa: 50)".
  • Metodoei deitzean onartzen β€œ?” operadorea erabiliz, metodoa badago soilik dei bat hasteko aukera ematen duena, β€œnulua” balioa itzultzeko beharrezkoak ez diren egiaztapenak saihesten dituena. Adibidez, "$dateAsString = $booking->getStartDate()?->asDateTimeString()";
  • Lagundu sindikatu motak, bi motatako edo gehiagoko bildumak definituz (adibidez, β€œfuntzio publikoa foo(Foo|Bar $sarrera): int|float;”).
  • Lagundu atributuak Docblock sintaxia erabili gabe klaseetara metadatuak (adibidez, motaren informazioa) lotzea ahalbidetzen duten (oharpenak).
  • Adierazpen-laguntza partidaren, zeinak, switch ez bezala, balioak itzul ditzake, konbinazio-baldintzak onartzen ditu, mota konparaketa zorrotzak erabiltzen ditu eta ez du "haustura" zehaztapenik behar.

    $emaitza = bat ($sarrera) {
    0 => "kaixo",
    '1', '2', '3' => "mundua",
    };

  • Sintaxia laburtua klaseen definizioak, eraikitzaile baten definizioa eta propietateak konbinatzeko aukera emanez.
  • Itzulketa mota berria - estatiko.
  • Mota berria - mistoa, funtzio batek mota ezberdinetako parametroak onartzen dituen zehazteko erabil daitekeena.
  • adierazpen bota salbuespenak kudeatzeko.
  • WeakMap zabor bilketan sakrifikatu daitezkeen objektuak sortzeko (adibidez, beharrezkoak ez diren cacheak gordetzeko).
  • Aukera Objektuetarako β€œ::class” esamoldea erabiliz (get_class() deitzearen antzekoa).
  • Aukera aldagaiei lotuta ez dauden salbuespenen catch blokeko definizioak.
  • Aukera funtzio-parametroen zerrendako azken elementuaren ondoren koma utziz.
  • Interfaze berria Harizkoa kate batean bihur daitezkeen edozein kate mota edo datu identifikatzeko (horretarako __toString() metodoa eskuragarri dago).
  • Ezaugarri berria str_contains(), azpikate baten agerraldia zehazteko strpos-en analogo sinplifikatua, baita str_starts_with() eta str_ends_with() funtzioak ere, kate baten hasieran eta amaieran bat datozenak egiaztatzeko.
  • Ezaugarri gehitua fdiv(), zatiketa eragiketa bat egiten duena zeroz zatitzean errorerik bota gabe.
  • Aldatua kateak elkartzeko logika. Adibidez, 'echo "sum:" esamoldea. $a + $b' 'oihartzuna' gisa interpretatu zen lehenago ("sum: " . $a) + $b', eta PHP 8-n 'echo "sum: " gisa tratatuko da. ($a + $b)'.
  • Estu eragiketa aritmetikoak eta bitartekoak egiaztatzeak, adibidez, "[] % [42]" eta "$objektua + 4" esamoldeek errore bat eragingo dute.
  • Inplementatua ordenatzeko algoritmo egonkorra, zeinetan balio berdinen ordena exekuzio ezberdinetan gordetzen den.
  • Iturria: opennet.ru

Gehitu iruzkin berria