Testarea beta a PHP 8 a început

Introdus prima versiune beta a noii ramuri a limbajului de programare PHP 8 Lansarea este programată pentru 26 noiembrie. În același timp, versiunile corective ale PHP 7.4.9, 7.3.21 și
7.2.33, care a eliminat erorile și vulnerabilitățile acumulate.

Principalul inovații PHP 8:

  • includere Compilatorul JIT, a cărui utilizare va îmbunătăți productivitatea.
  • Sprijini argumente ale funcției numite, permițându-vă să transmiteți valori funcției în raport cu nume, de exemplu. Puteți transmite argumente în orice ordine și puteți defini argumente opționale. De exemplu, „array_fill(start_index: 0, num: 100, value: 50)”.
  • La apelarea metodelor permis folosind operatorul „?”, care vă permite să inițiați un apel numai dacă metoda este prezentă, ceea ce evită verificările inutile pentru returnarea valorii „nulă”. De exemplu, „$dateAsString = $booking->getStartDate()?->asDateTimeString()”;
  • Sprijini tipuri de sindicate, definind colecții de două sau mai multe tipuri (de exemplu, „funcție publică foo(Foo|Bar $input): int|float;”).
  • Sprijini atribute (adnotări) care vă permit să legați metadate (cum ar fi informații de tip) la clase fără a utiliza sintaxa Docblock.
  • Suport de exprimare Meci, care, spre deosebire de comutator, poate returna valori, poate suporta condiții de combinare, poate folosi comparații stricte de tip și nu necesită o specificație „break”.

    $rezultat = potrivire($input) {
    0 => "bună ziua",
    „1”, „2”, „3” => „lume”,
    };

  • Sintaxă scurtată definiții de clasă, permițându-vă să combinați definiția unui constructor și proprietăți.
  • Nou tip de returnare - static.
  • Tip nou - mixt, care poate fi folosit pentru a determina dacă o funcție acceptă parametri de diferite tipuri.
  • expresie arunca pentru a gestiona excepțiile.
  • WeakMap pentru a crea obiecte care pot fi sacrificate în timpul colectării gunoiului (de exemplu, pentru a stoca cache-uri inutile).
  • Oportunitate folosind expresia „::class” pentru obiecte (analog cu apelarea get_class()).
  • Oportunitate definiții din blocul catch de excepții care nu sunt legate de variabile.
  • Oportunitate lăsând o virgulă după ultimul element din lista parametrilor funcției.
  • Interfață nouă Se poate înșira pentru a identifica orice tip de șir sau date care pot fi convertite într-un șir (pentru care este disponibilă metoda __toString()).
  • Optiune noua str_contains(), un analog simplificat al strpos pentru determinarea apariției unui subșir, precum și funcțiile str_starts_with() și str_ends_with() pentru verificarea potrivirilor la începutul și la sfârșitul unui șir.
  • Funcție adăugată fdiv(), care efectuează o operație de împărțire fără a arunca o eroare la împărțirea la zero.
  • Schimbat logica de îmbinare a șirurilor. De exemplu, expresia „echo „sum:” . $a + $b' a fost interpretat anterior ca 'echo ("sum: " . $a) + $b', iar în PHP 8 va fi tratat ca 'echo "sum: " . ($a + $b)'.
  • Strâns verificarea operațiilor aritmetice și pe biți, de exemplu, expresiile „[] % [42]” și „$object + 4” vor avea ca rezultat o eroare.
  • Implementat un algoritm de sortare stabil în care ordinea valorilor identice este păstrată pe diferite rulări.
  • Sursa: opennet.ru

Adauga un comentariu