Beta-toetsing van PHP 8 het begin

Bekendgestel die eerste beta-vrystelling van die nuwe tak van die PHP 8-programmeertaal. Die vrystelling is geskeduleer vir 26 November. Terselfdertyd, regstellende vrystellings van PHP 7.4.9, 7.3.21 en
7.2.33, wat opgehoopte foute en kwesbaarhede uitgeskakel het.

Die belangrikste innovasies PHP 8:

  • insluiting JIT samesteller, waarvan die gebruik produktiwiteit sal verbeter.
  • Ondersteun benoemde funksie-argumente, wat jou toelaat om waardes aan die funksie oor te dra met betrekking tot name, d.w.s. Jy kan argumente in enige volgorde deurgee en opsionele argumente definieer. Byvoorbeeld, "array_fill(begin_indeks: 0, getal: 100, waarde: 50)".
  • Wanneer roep metodes toegelaat met behulp van die "?"-operateur, wat jou toelaat om 'n oproep te begin slegs as die metode teenwoordig is, wat onnodige kontrole vir die terugkeer van die "nul"-waarde vermy. Byvoorbeeld, "$dateAsString = $booking->getStartDate()?->asDateTimeString()";
  • Ondersteun vakbond tipes, wat versamelings van twee of meer tipes definieer (byvoorbeeld, "public function foo(Foo|Bar $input): int|float;").
  • Ondersteun eienskappe (aantekeninge) wat jou toelaat om metadata (soos tipe inligting) aan klasse te bind sonder om Docblock-sintaksis te gebruik.
  • Ondersteuning vir uitdrukking ooreenstem met, wat, anders as skakelaar, waardes kan teruggee, kombinasietoestande kan ondersteun, streng tipe vergelykings kan gebruik en nie 'n "breek"-spesifikasie vereis nie.

    $result = pas($invoer) {
    0 => "hallo",
    '1', '2', '3' => "wêreld",
    };

  • Verkorte sintaksis klasdefinisies, wat jou toelaat om die definisie van 'n konstruktor en eienskappe te kombineer.
  • Nuwe tipe terugkeer - statiese.
  • Nuwe tipe - gemengde, wat gebruik kan word om te bepaal of 'n funksie parameters van verskillende tipes aanvaar.
  • uitdrukking gooi om uitsonderings te hanteer.
  • Swak Kaart om voorwerpe te skep wat tydens vullisversameling opgeoffer kan word (byvoorbeeld om onnodige caches te stoor).
  • Geleentheid gebruik die uitdrukking "::klas" vir voorwerpe (analoog aan die oproep van get_class()).
  • Geleentheid definisies in die vangblok van uitsonderings wat nie aan veranderlikes gebonde is nie.
  • Geleentheid 'n komma agter die laaste element in die lys funksieparameters te laat.
  • Nuwe koppelvlak Snaarbaar om enige stringtipes of data te identifiseer wat na 'n string omgeskakel kan word (waarvoor die __toString()-metode beskikbaar is).
  • Nuwe funksie str_bevat(), 'n vereenvoudigde analoog van strpos vir die bepaling van die voorkoms van 'n substring, sowel as die funksies str_starts_with() en str_ends_with() vir die kontrolering van passings aan die begin en einde van 'n string.
  • Kenmerk bygevoeg fdiv(), wat 'n deelbewerking uitvoer sonder om 'n fout te gooi wanneer dit deur nul gedeel word.
  • Verander snaarverbindingslogika. Byvoorbeeld, die uitdrukking 'echo "som:" . $a + $b' is voorheen geïnterpreteer as 'echo ("som: " . $a) + $b', en sal in PHP 8 as 'echo "som: " behandel word. ($a + $b)'.
  • Styf getrek nagaan van rekenkundige en bisbewerkings, byvoorbeeld, sal die uitdrukkings "[] % [42]" en "$object + 4" 'n fout tot gevolg hê.
  • Geïmplementeer 'n stabiele sorteeralgoritme waarin die volgorde van identiese waardes oor verskillende lopies bewaar word.
  • Bron: opennet.ru

Voeg 'n opmerking