Beta-testado de PHP 8 komenciĝis

Enkondukita la unua beta-eldono de la nova branĉo de la programlingvo PHP 8. La eldono estas planita por la 26-a de novembro. Samtempe, korektaj eldonoj de PHP 7.4.9, 7.3.21 kaj
7.2.33, kiu forigis amasigitajn erarojn kaj vundeblecojn.

Ĉefa novigoj PHP 8:

  • Ebligi JIT-kompililo, kies uzo plibonigos produktivecon.
  • subteno nomitaj funkcio-argumentoj, permesante al vi transdoni valorojn al la funkcio rilate al nomoj, t.e. Vi povas pasi argumentojn en ajna ordo kaj difini laŭvolajn argumentojn. Ekzemple, "array_fill(start_index: 0, num: 100, value: 50)".
  • Kiam oni vokas metodojn permesita uzante la operatoron "?", kiu ebligas al vi komenci vokon nur se la metodo ĉeestas, kio evitas nenecesajn kontrolojn por resendi la "nulan" valoron. Ekzemple, "$dateAsString = $booking->getStartDate()?->asDateTimeString()";
  • subteno sindikatspecoj, difinante kolektojn de du aŭ pli da tipoj (ekzemple, “publika funkcio foo(Foo|Bar $enigo): int|float;”).
  • subteno atributoj (komentoj) kiuj ebligas al vi ligi metadatenojn (kiel tipinformojn) al klasoj sen uzi Docblock-sintakso.
  • Subteno de esprimo matĉo, kiu, male al ŝaltilo, povas resendi valorojn, subteni kombinajn kondiĉojn, uzi striktajn tipajn komparojn, kaj ne postulas "rompan" specifon.

    $rezulto = kongruo ($enigo) {
    0 => "saluton",
    '1', '2', '3' => “mondo”,
    };

  • Mallongigita sintakso klasdifinoj, permesante vin kombini la difinon de konstrukciisto kaj ecoj.
  • Nova revena tipo - statika.
  • Nova tipo - miksitaj, kiu povas esti uzata por determini ĉu funkcio akceptas parametrojn de malsamaj tipoj.
  • Esprimo ĵetu trakti esceptojn.
  • Malforta Mapo krei objektojn, kiujn oni povas oferi dum rubkolekto (ekzemple, por konservi nenecesajn kaŝmemorojn).
  • Ebleco uzante la esprimon “::class” por objektoj (analoga al vokado get_class()).
  • Ebleco difinoj en la catch bloko de esceptoj kiuj ne estas ligitaj al variabloj.
  • Ebleco lasante komon post la lasta elemento en la listo de funkcio-parametroj.
  • Nova interfaco Ŝnurebla por identigi ajnajn ĉenspecojn aŭ datumojn kiuj povas esti konvertitaj al ĉeno (por kiu la __toString() metodo estas disponebla).
  • Nova funkcio str_enhavas (), simpligita analogo de strpos por determini la aperon de subĉeno, same kiel la funkcioj str_starts_with() kaj str_ends_with() por kontroli kongruojn ĉe la komenco kaj fino de ĉeno.
  • Aldonita funkcio fdiv(), kiu faras dividan operacion sen ĵeti eraron dum divido per nulo.
  • Ŝanĝita string kuniganta logiko. Ekzemple, la esprimo 'echo "sumo:" . $a + $b' antaŭe estis interpretita kiel 'eĥo ("sumo: " . $a) + $b', kaj en PHP 8 estos traktata kiel 'eĥo "sumo: " . ($a + $b)'.
  • Streĉita kontrolante aritmetikajn kaj bitajn operaciojn, ekzemple, la esprimoj "[] % [42]" kaj "$objekto + 4" rezultigos eraron.
  • Efektivigita stabila ordiga algoritmo en kiu la ordo de identaj valoroj estas konservita tra malsamaj kuroj.
  • fonto: opennet.ru

Aldoni komenton