Tès beta nan PHP 8 te kòmanse

Entwodwi premye lage beta nan nouvo branch lang nan pwogram PHP 8 yo pwograme pou 26 Novanm. An menm tan an, degaje korektif PHP 7.4.9, 7.3.21 ak
7.2.33, ki elimine erè akimile ak frajilite.

Prensipal la inovasyon PHP 8:

  • Pouvwa moute JIT du, itilizasyon ki pral amelyore pwodiktivite.
  • Sipòte agiman fonksyon yo nonmen, ki pèmèt ou pase valè nan fonksyon an an relasyon ak non, sa vle di. Ou ka pase agiman nan nenpòt lòd epi defini agiman si ou vle. Pou egzanp, "array_fill (start_index: 0, num: 100, valè: 50)".
  • Lè w ap rele metòd pèmèt lè l sèvi avèk "?" operatè a, ki pèmèt ou kòmanse yon apèl sèlman si metòd la prezan, ki evite chèk nesesè pou retounen valè "nil". Pa egzanp, "$dateAsString = $booking->getStartDate()?->asDateTimeString()";
  • Sipòte kalite sendika yo, defini koleksyon de oswa plis kalite (pa egzanp, "fonksyon piblik foo(Foo|Bar $input): int|float;").
  • Sipòte atribi yo (anotasyon) ki pèmèt ou mare metadata (tankou enfòmasyon tip) nan klas yo san yo pa itilize sentaks Docblock.
  • Sipò ekspresyon matche ak, ki, kontrèman ak switch, ka retounen valè, sipòte kondisyon konbine, itilize konparezon kalite strik, epi yo pa mande pou yon spesifikasyon "kraze".

    $rezilta = matche ($antre) {
    0 => "bonjou",
    '1', '2', '3' => "monde",
    };

  • Sentaks ki pi kout definisyon klas, ki pèmèt ou konbine definisyon yon konstrukteur ak pwopriyete.
  • Nouvo kalite retounen - estatik.
  • Nouvo kalite - melanje, ki ka itilize pou detèmine si yon fonksyon aksepte paramèt diferan kalite.
  • Ekspresyon voye jete pou okipe eksepsyon yo.
  • WeakMap pou kreye objè ki ka sakrifye pandan koleksyon fatra (pa egzanp, pou estoke kachèt ki pa nesesè).
  • Posibilite lè l sèvi avèk ekspresyon "::class" pou objè (analòg ak rele get_class()).
  • Posibilite definisyon nan blòk la trape nan eksepsyon ki pa mare ak varyab.
  • Posibilite kite yon vigil apre dènye eleman nan lis paramèt fonksyon yo.
  • Nouvo koòdone Stringable pou idantifye nenpòt kalite fisèl oswa done ki ka konvèti nan yon fisèl (pou ki metòd la __toString() disponib).
  • Nouvo karakteristik str_contains(), yon analòg senplifye nan strpos pou detèmine ensidan an nan yon substring, osi byen ke fonksyon yo str_starts_with() ak str_ends_with() pou tcheke alimèt nan kòmansman ak nan fen yon fisèl.
  • Te ajoute fonksyon fdiv(), ki fè yon operasyon divizyon san yo pa voye yon erè lè divize pa zewo.
  • Chanje fisèl rantre lojik. Pou egzanp, ekspresyon 'echo "som:" . $a + $b' te deja entèprete kòm 'eko ("som: ". $a) + $b', epi nan PHP 8 yo pral trete kòm 'eko "som: ". ($a + $b)'.
  • Sere boulon tcheke operasyon aritmetik ak bit, pou egzanp, ekspresyon "[] ​​% [42]" ak "$objè + 4" ap lakòz yon erè.
  • Aplike yon algorithm klasman ki estab nan ki se lòd la nan valè ki idantik konsève atravè diferan kouri.
  • Sous: opennet.ru

Add nouvo kòmantè