L-ittestjar beta tal-PHP 8 beda

Introdott l-ewwel rilaxx beta tal-fergħa l-ġdida tal-lingwa ta 'programmar PHP 8 Ir-rilaxx huwa skedat għas-26 ta' Novembru. Fl-istess ħin, rilaxxi korrettivi ta 'PHP 7.4.9, 7.3.21 u
7.2.33, li elimina l-iżbalji u l-vulnerabbiltajiet akkumulati.

Il-prinċipali innovazzjonijiet PHP 8:

  • Inklużjoni kompilatur JIT, li l-użu tiegħu se jtejjeb il-produttività.
  • Appoġġ argumenti tal-funzjoni msemmija, li jippermettulek tgħaddi valuri lill-funzjoni fir-rigward tal-ismijiet, i.e. Tista' tgħaddi argumenti fi kwalunkwe ordni u tiddefinixxi argumenti fakultattivi. Per eżempju, "array_fill(start_index: 0, num: 100, valur: 50)".
  • Meta ssejjaħ metodi permess billi tuża l-operatur "?", li jippermettilek tibda sejħa biss jekk il-metodu jkun preżenti, li jevita kontrolli bla bżonn għar-ritorn tal-valur "null". Per eżempju, "$dateAsString = $booking->getStartDate()?->asDateTimeString()";
  • Appoġġ tipi ta' unjoni, li tiddefinixxi kollezzjonijiet ta' żewġ tipi jew aktar (per eżempju, “public function foo(Foo|Bar $input): int|float;”).
  • Appoġġ attributi (annotazzjonijiet) li jippermettulek torbot metadata (bħal informazzjoni tat-tip) ma' klassijiet mingħajr ma tuża s-sintassi ta' Docblock.
  • Appoġġ għall-espressjoni jaqblu, li, b'differenza swiċċ, jista 'jirritorna valuri, jappoġġja kundizzjonijiet li jgħaqqdu, juża paraguni stretti tat-tip, u ma jeħtiġux speċifikazzjoni ta' "waqfa".

    $riżultat = jaqblu ($input) {
    0 => "bonjour",
    '1', '2', '3' => “dinja”,
    };

  • Sintassi mqassra definizzjonijiet tal-klassi, li jippermettulek tgħaqqad id-definizzjoni ta 'kostruttur u proprjetajiet.
  • Tip ta' ritorn ġdid - statiku.
  • Tip ġdid - mħallta, li jista 'jintuża biex jiddetermina jekk funzjoni taċċettax parametri ta' tipi differenti.
  • Espressjoni tarmi biex jimmaniġġaw eċċezzjonijiet.
  • WeakMap biex jinħolqu oġġetti li jistgħu jiġu sagrifikati waqt il-ġbir taż-żibel (per eżempju, biex jinħażnu caches mhux meħtieġa).
  • Opportunità bl-użu tal-espressjoni “::class” għall-oġġetti (analogu għas-sejħa get_class()).
  • Opportunità definizzjonijiet fil-blokk tal-qbid ta’ eċċezzjonijiet li mhumiex marbuta ma’ varjabbli.
  • Opportunità li tħalli virgola wara l-aħħar element fil-lista tal-parametri tal-funzjoni.
  • Interfaċċa ġdida Stringable biex tidentifika kwalunkwe tip ta' string jew data li tista' tiġi kkonvertita fi string (li għaliha l-metodu __toString() huwa disponibbli).
  • Karatteristika ġdida str_contains(), analogu simplifikat ta 'strpos għad-determinazzjoni tal-okkorrenza ta' substring, kif ukoll il-funzjonijiet str_starts_with() u str_ends_with() għall-iċċekkjar ta 'logħbiet fil-bidu u fit-tmiem ta' string.
  • Funzjoni miżjuda fdiv(), li twettaq operazzjoni ta 'diviżjoni mingħajr ma tarmi żball meta tiddividi b'żero.
  • Mibdul loġika li tgħaqqad is-sekwenza. Pereżempju, l-espressjoni 'echo "somma:" . $a + $b' qabel kien interpretat bħala 'echo ("somma: " . $a) + $b', u f'PHP 8 se jiġi ttrattat bħala "echo "somma: " . ($a + $b)'.
  • Issikkat l-iċċekkjar ta' operazzjonijiet aritmetiċi u bit, pereżempju, l-espressjonijiet "[] % [42]" u "$object + 4" se jirriżultaw fi żball.
  • Implimentati algoritmu ta’ għażla stabbli li fih l-ordni ta’ valuri identiċi tiġi ppreservata f’ġirjiet differenti.
  • Sors: opennet.ru

Żid kumment