Megkezdődött a PHP 8 béta tesztelése

Által benyújtott a PHP 8 programozási nyelv új ágának első béta kiadása.A megjelenést november 26-ra tervezik. Ugyanakkor a PHP 7.4.9, 7.3.21 és a javító kiadások
7.2.33, amely kiküszöbölte a felgyülemlett hibákat és sebezhetőségeket.

A főbb innovációk PHP 8:

  • befogadás JIT fordító, amelyek használata javítja a termelékenységet.
  • támogatás elnevezett függvény argumentumokat, lehetővé téve, hogy értékeket adjon át a függvénynek a nevekkel kapcsolatban, pl. Az argumentumokat tetszőleges sorrendben adhatja át, és választható argumentumokat is megadhat. Például: "array_fill(start_index: 0, num: 100, value: 50)".
  • A metódusok hívásakor megengedett a „?” operátor használatával, amely csak a metódus jelenléte esetén teszi lehetővé a hívás kezdeményezését, így elkerülhető a „null” érték visszaadásának szükségtelen ellenőrzése. Például: "$dateAsString = $foglalás->getStartDate()?->asDateTimeString()";
  • támogatás szakszervezeti típusok, amely két vagy több típusú gyűjteményt határoz meg (például „public function foo(Foo|Bar $input): int|float;”).
  • támogatás attribútumokat (annotációk), amelyek lehetővé teszik metaadatok (például típusinformációk) osztályokhoz való kötését Docblock szintaxis használata nélkül.
  • Kifejezés támogatása mérkőzés, amely a kapcsolóval ellentétben értékeket tud visszaadni, támogatja a feltételek kombinálását, szigorú típus-összehasonlítást használ, és nem igényel „break” specifikációt.

    $eredmény = egyezés($input) {
    0 => "helló",
    '1', '2', '3' => "világ",
    };

  • Rövidített szintaxis osztálydefiníciókat, lehetővé téve a konstruktor definíciójának és a tulajdonságok kombinálását.
  • Új visszaküldési típus - statikus.
  • Új típus - vegyes, amellyel megállapítható, hogy egy függvény elfogad-e különböző típusú paramétereket.
  • kifejezés dobás a kivételek kezelésére.
  • WeakMap szemétgyűjtés során feláldozható objektumok létrehozására (például szükségtelen gyorsítótárak tárolására).
  • Alkalom a „::class” kifejezést használva az objektumokhoz (a get_class() hívásához hasonlóan).
  • Alkalom definíciók a változókhoz nem kötött kivételek fogási blokkjában.
  • Alkalom a függvényparaméterek listájában az utolsó elem után vesszőt hagyva.
  • Új felület Feszélhető hogy azonosítsa azokat a karakterlánctípusokat vagy adatokat, amelyek karakterláncokká alakíthatók (amelyhez elérhető a __toString() metódus).
  • Új funkció str_contains(), az strpos egyszerűsített analógja egy részkarakterlánc előfordulásának meghatározására, valamint az str_starts_with() és str_ends_with() függvények a karakterlánc elején és végén lévő egyezések ellenőrzésére.
  • Funkció hozzáadva fdiv(), amely osztási műveletet hajt végre anélkül, hogy hibát dobna, ha nullával osztjuk.
  • Megváltozott karakterlánc-csatlakozási logika. Például az 'echo "sum:" kifejezés. Az $a + $b' korábban 'echo ("sum: " . $a) + $b'-ként volt értelmezve, a PHP 8-ban pedig 'echo "sum: "-ként fog kezelni. ($a + $b)”.
  • Megfeszítve az aritmetikai és bitműveletek ellenőrzése, például a "[] % [42]" és a "$object + 4" kifejezések hibát eredményeznek.
  • Megvalósítva egy stabil rendezési algoritmus, amelyben az azonos értékek sorrendje megőrződik a különböző futtatások során.
  • Forrás: opennet.ru

Hozzászólás