Kev sim beta ntawm PHP 8 tau pib

Xa los ntawm thawj beta tso tawm ntawm ceg tshiab ntawm PHP 8 programming lus. Qhov kev tso tawm yog teem rau lub Kaum Ib Hlis 26. Nyob rau tib lub sijhawm, kho qhov tso tawm ntawm PHP 7.4.9, 7.3.21 thiab
7.2.33, uas tshem tawm qhov yuam kev thiab qhov tsis zoo.

ntsiab kev tsim kho tshiab PHP 8 ua:

  • Tig los TSI compiler, siv cov uas yuav txhim kho productivity.
  • kev pab txhawb nqa npe muaj nuj nqi sib cav, tso cai rau koj hla qhov tseem ceeb rau cov haujlwm hauv kev cuam tshuam nrog cov npe, i.e. Koj tuaj yeem hla cov lus sib cav hauv txhua qhov kev txiav txim thiab txhais cov lus tsis txaus siab. Piv txwv li, "array_fill(start_index: 0, num: 100, tus nqi: 50)".
  • Thaum hu txoj kev tso cai siv tus neeg teb xov tooj "?", uas tso cai rau koj pib hu xov tooj tsuas yog hais tias tus txheej txheem tam sim no, uas zam qhov tsis tsim nyog kuaj kom rov qab qhov "null" tus nqi. Piv txwv li, "$dateAsString = $booking->getStartDate()?->asDateTimeString()";
  • kev pab txhawb nqa union hom, txhais cov kev sau ntawm ob lossis ntau hom (piv txwv li, "public function foo(Foo|Bar $input): int|float;").
  • kev pab txhawb nqa yam ntxwv (annotations) uas tso cai rau koj khi metadata (xws li cov ntaub ntawv hom) rau cov chav kawm yam tsis siv Docblock syntax.
  • Kev txhawb nqa match, uas, tsis zoo li qhov hloov pauv, tuaj yeem rov qab tau qhov tseem ceeb, txhawb kev sib koom ua ke, siv cov kev sib piv nruj, thiab tsis tas yuav tsum tau "tawg" specification.

    $result = match($input) {
    0 => "nyob zoo",
    '1', '2', '3' => "ntiaj teb",
    };

  • Shortened syntax chav kawm txhais, tso cai rau koj los ua ke cov ntsiab lus ntawm tus tsim thiab cov khoom.
  • Tshiab hom rov qab - zoo li qub.
  • Hom tshiab - tov, uas tuaj yeem siv los txiav txim siab seb lub luag haujlwm puas lees txais cov kev txwv ntawm ntau hom.
  • Qhia muab pov los lis kev zam.
  • WeakMap los tsim cov khoom uas tuaj yeem muab txi rau thaum khaws cov khib nyiab (piv txwv li, khaws cov caches tsis tsim nyog).
  • Sijhawm siv cov lus "::class" rau cov khoom (analogous rau hu get_class()).
  • Sijhawm cov ntsiab lus nyob rau hauv lub ntes thaiv ntawm kev zam uas tsis yog khi rau cov hloov pauv.
  • Sijhawm tawm hauv ib qho comma tom qab lub caij kawg hauv cov npe ntawm cov haujlwm tsis ua haujlwm.
  • Tshiab interface Stringable txhawm rau txheeb xyuas cov hlua hom lossis cov ntaub ntawv uas tuaj yeem hloov mus rau ib txoj hlua (rau qhov uas __toString() txoj kev muaj).
  • Tshiab feature str_contains(), ib qho yooj yim analogue ntawm strpos rau kev txiav txim qhov tshwm sim ntawm ib tug substring, raws li zoo raws li lub functions str_starts_with() thiab str_ends_with() rau kev ntsuam xyuas qhov sib tw thaum pib thiab xaus ntawm ib txoj hlua.
  • Ntxiv muaj nuj nqi fdiv(), uas ua rau kev faib ua haujlwm yam tsis muaj qhov yuam kev thaum faib los ntawm xoom.
  • Hloov txoj hlua txuas logic. Piv txwv li, cov lus qhia 'echo "sum:". $a + $b' yav dhau los txhais li 'echo ("sum: " . $a) + $ b', thiab hauv PHP 8 yuav raug kho raws li 'echo "sum:" . ($a + $b)'.
  • Tightened xyuas cov lej lej thiab kev ua haujlwm me ntsis, piv txwv li, cov kab lus "[] % [42]" thiab "$object + 4" yuav ua rau muaj qhov yuam kev.
  • Ua tiav ruaj khov sorting algorithm nyob rau hauv uas qhov kev txiav txim ntawm zoo tib yam muaj nuj nqis yog khaws cia nyob rau hauv sib txawv khiav.
  • Tau qhov twg los: opennet.ru

Ntxiv ib saib