Majaribio ya Beta ya PHP 8 yameanza

Iliyowasilishwa na toleo la kwanza la beta la tawi jipya la lugha ya programu ya PHP 8. Toleo limepangwa Novemba 26. Wakati huo huo, matoleo ya marekebisho ya PHP 7.4.9, 7.3.21 na
7.2.33, ambayo iliondoa makosa na udhaifu uliokusanywa.

kuu ubunifu PHP 8:

  • Ushirikishwaji Mkusanyaji wa JIT, matumizi ambayo yataboresha tija.
  • Support hoja za kazi zilizopewa jina, hukuruhusu kupitisha maadili kwa chaguo la kukokotoa kuhusiana na majina, i.e. Unaweza kupitisha hoja kwa mpangilio wowote na kufafanua hoja za hiari. Kwa mfano, "array_fill(start_index: 0, num: 100, value: 50)".
  • Wakati wa kupiga simu njia kuruhusiwa kwa kutumia opereta "?", ambayo hukuruhusu kupiga simu ikiwa tu njia iko, ambayo huepuka ukaguzi usio wa lazima wa kurudisha thamani ya "null". Kwa mfano, "$dateAsString = $booking->getStartDate()?->asDateTimeString()";
  • Support aina za muungano, ikifafanua mikusanyiko ya aina mbili au zaidi (kwa mfano, "funzo za umma foo(Foo|Bar $input): int|float;").
  • Support sifa (ufafanuzi) unaokuruhusu kufunga metadata (kama vile maelezo ya aina) kwa madarasa bila kutumia syntax ya Docblock.
  • Usaidizi wa kujieleza mechi, ambayo, tofauti na kubadili, inaweza kurejesha maadili, kusaidia kuchanganya masharti, kutumia kulinganisha kwa aina kali, na hauhitaji vipimo vya "kuvunja".

    $matokeo = mechi($input) {
    0 => "hujambo",
    '1', '2', '3' => "ulimwengu",
    };

  • Sintaksia iliyofupishwa ufafanuzi wa darasa, hukuruhusu kuchanganya ufafanuzi wa mjenzi na mali.
  • Aina mpya ya kurudi - tuli.
  • Aina mpya - mchanganyiko, ambayo inaweza kutumika kubainisha kama chaguo za kukokotoa hukubali vigezo vya aina tofauti.
  • Kuonyesha kutupa kushughulikia ubaguzi.
  • WeakMap kuunda vitu vinavyoweza kutolewa wakati wa kukusanya takataka (kwa mfano, kuhifadhi cache zisizohitajika).
  • Fursa kwa kutumia usemi "::class" kwa vitu (sawa na kupiga get_class()).
  • Fursa ufafanuzi katika kizuizi cha kukamata cha tofauti ambazo hazifungwi na vigeuzo.
  • Fursa kuacha koma baada ya kipengele cha mwisho katika orodha ya vigezo vya kazi.
  • Kiolesura kipya Inayowezekana kutambua aina zozote za mfuatano au data inayoweza kubadilishwa kuwa mfuatano (ambayo mbinu ya __toString() inapatikana).
  • Kipengele kipya str_contains(), analogi iliyorahisishwa ya strpos ya kubaini kutokea kwa kamba ndogo, na vile vile chaguo za kukokotoa str_starts_with() na str_ends_with() za kuangalia mechi mwanzoni na mwisho wa mfuatano.
  • Kipengele kilichoongezwa fdiv(), ambayo hufanya operesheni ya mgawanyiko bila kutupa kosa wakati wa kugawanya kwa sifuri.
  • Imebadilishwa mantiki ya kuunganisha kamba. Kwa mfano, usemi 'echo "jumla:" . $a + $b' hapo awali ilifasiriwa kama 'echo ("sum: " . $a) + $b', na katika PHP 8 itachukuliwa kama 'echo "sum: " . ($a + $b)'.
  • Imekazwa kuangalia shughuli za hesabu na biti, kwa mfano, maneno "[] % [42]" na "$object + 4" yatasababisha hitilafu.
  • Imetekelezwa algorithm thabiti ya kupanga ambayo mpangilio wa maadili sawa huhifadhiwa kwa njia tofauti.
  • Chanzo: opennet.ru

Kuongeza maoni