A început testarea beta a PHP 8

Prezentat prima versiune beta a noului ramura a limbajului de programare PHP 8. Lansarea este programată pentru 26 noiembrie. În același timp, au fost formate versiunile corective PHP 7.4.9, 7.3.21 și
7.2.33, în care au fost eliminate erorile și vulnerabilitățile acumulate.

Principalele noutăți PHP 8:

  • Activarea compilatorului JIT, al cărui utilizare va permite creșterea performanței.
  • Asistență argumente denumite pentru funcții, care permit transmiterea valorilor unei funcții legate de nume, adică se pot transmite argumente în ordine aleatorie și se pot defini argumente opționale. De exemplu, „array_fill(start_index: 0, num: 100, value: 50)”.
  • La apelarea metodelor este permisă utilizarea operatorului „?”, care permite inițierea apelului doar dacă metoda este prezentă, evitând astfel verificările inutile pentru returnarea valorii „null”. De exemplu, „$dateAsString = $booking->getStartDate()?->asDateTimeString()”;
  • Asistență tipuri union, care definesc colecții din două sau mai multe tipuri (de exemplu „public function foo(Foo|Bar $input): int|float;”).
  • Asistență atribute (anotații), care permit asocierea de metadate (de exemplu, informații despre tipuri) cu clasele fără a utiliza sintaxa Docblock.
  • Suport pentru expresii match, care spre deosebire de switch pot returna valori, susțin combinarea condițiilor, folosesc comparația strictă a tipurilor și nu necesită indicarea „break”.

    $result = match($input) {
    0 => „hello”,
    ‘1’, ‘2’, ‘3’ => „world”,
    };

  • Sintaxă simplificată pentru definirea claselor, care permite combinarea definiției constructorului și a proprietăților.
  • Un nou tip de valori returnate — static.
  • Un nou tip — mixed, care poate fi utilizat pentru a defini parametrii funcției care au tipuri diferite.
  • Expresia throw pentru gestionarea excepțiilor.
  • WeakMap pentru crearea de obiecte care pot fi distruse prin colectarea deșeurilor (de exemplu, pentru stocarea de cache-uri opționale).
  • Posibilitatea utilizarea expresiei „::class” pentru obiecte (analog cu apelul get_class()).
  • Posibilitatea definirea în blocul catch a excepțiilor neasociate cu variabile.
  • Posibilitatea lăsarea unui simbol de virgulă după ultimul element din lista de parametri ai funcției.
  • Nouă interfață Stringable pentru identificarea oricăror tipuri de date sau șiruri care pot fi transformate într-un șir (pentru care este disponibilă metoda __toString()).
  • Nouă funcție str_contains(), un echivalent simplificat al strpos pentru determinarea prezenței unei subștii, precum și funcțiile str_starts_with() și str_ends_with() pentru a verifica corespondențele la începutul și sfârșitul șirului.
  • Funcție adăugată fdiv(), care execută operația de împărțire fără a genera o eroare în cazul împărțirii la zero.
  • Logica de concatenare a șirurilor a fost modificată. De exemplu, expresia ‘echo „sum: ” . $a + $b’ a fost interpretată anterior ca ‘echo („sum: ” . $a) + $b’, iar în PHP 8 va fi procesată ca ‘echo „sum: ” . ($a + $b)’.
  • A fost întărită verificarea operațiunilor aritmetice și bitwise, de exemplu, expresiile „[] % [42]” și „$object + 4” vor genera o eroare.
  • Implementat un algoritm stabil de sortare, în care ordinea valorilor identice este păstrată în diferite execuții.
  • Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster