Սկսվել է PHP 8-ի բետա փորձարկումը

Ներկայացվել է PHP 8 ծրագրավորման լեզվի նոր մասնաճյուղի առաջին բետա թողարկումը, որը նախատեսված է նոյեմբերի 26-ին։ Միևնույն ժամանակ, PHP 7.4.9, 7.3.21 և ուղղիչ թողարկումները
7.2.33, որը վերացրել է կուտակված սխալներն ու խոցելիությունները։

Հիմնական նորամուծություններ PHP 8:

  • Միացրեց JIT կոմպիլյատոր, որոնց օգտագործումը կբարելավի արտադրողականությունը։
  • Աջակցություն անվանված ֆունկցիայի փաստարկներ, որոնք թույլ են տալիս ֆունկցիային արժեքներ փոխանցել անունների հետ կապված, այսինքն. Դուք կարող եք արգումենտներ փոխանցել ցանկացած հերթականությամբ և սահմանել կամընտիր փաստարկներ: Օրինակ՝ «array_fill(start_index: 0, num: 100, value: 50)»:
  • Մեթոդներ կանչելիս թույլատրվում է օգտագործելով «?» օպերատորը, որը թույլ է տալիս սկսել զանգը միայն մեթոդի առկայության դեպքում, որը խուսափում է «null» արժեքը վերադարձնելու անհարկի ստուգումներից: Օրինակ՝ «$dateAsString = $booking->getStartDate()?->asDateTimeString()»;
  • Աջակցություն միության տեսակները, սահմանելով երկու կամ ավելի տեսակի հավաքածուներ (օրինակ՝ «public function foo(Foo|Bar $input): int|float;»):
  • Աջակցություն հատկանիշները (անոտացիաներ), որոնք թույլ են տալիս կապել մետատվյալները (օրինակ՝ տեսակի տեղեկատվությունը) դասերին՝ առանց Docblock-ի շարահյուսություն օգտագործելու:
  • Արտահայտման աջակցություն համընկնում, որը, ի տարբերություն անջատիչի, կարող է վերադարձնել արժեքներ, աջակցել համակցման պայմաններին, օգտագործել խիստ տիպային համեմատություններ և չի պահանջում «ընդմիջման» ճշգրտում։

    $result = համընկնում ($input) {
    0 => «բարև»,
    '1', '2', '3' => «աշխարհ»,
    };

  • Կրճատված շարահյուսություն դասի սահմանումները, որոնք թույլ են տալիս համատեղել կոնստրուկտորի և հատկությունների սահմանումը:
  • Վերադարձի նոր տեսակ - ստատիկ.
  • Նոր տեսակ - խառը, որը կարող է օգտագործվել որոշելու համար, թե արդյոք ֆունկցիան ընդունում է տարբեր տեսակի պարամետրեր։
  • Արտահայտություն նետում կարգավորել բացառությունները:
  • WeakMap ստեղծել օբյեկտներ, որոնք կարող են զոհաբերվել աղբահանության ժամանակ (օրինակ՝ անհարկի քեշեր պահելու համար):
  • Հնարավորություն Օբյեկտների համար օգտագործելով «::class» արտահայտությունը (որը նման է get_class() կանչին):
  • Հնարավորություն սահմանումներ բացառությունների catch բլոկում, որոնք կապված չեն փոփոխականների հետ:
  • Հնարավորություն ֆունկցիայի պարամետրերի ցանկում վերջին տարրից հետո թողնելով ստորակետ:
  • Նոր ինտերֆեյս Լարային բացահայտել տողերի ցանկացած տեսակներ կամ տվյալներ, որոնք կարող են փոխարկվել տողի (որի համար հասանելի է __toString() մեթոդը):
  • Նոր գործառույթ str_contains(), strpos-ի պարզեցված անալոգը՝ ենթալարի առաջացումը որոշելու համար, ինչպես նաև str_starts_with() և str_ends_with() ֆունկցիաները՝ տողի սկզբում և վերջում համընկնումները ստուգելու համար։
  • Ավելացված հատկություն fdiv (), որը կատարում է բաժանման գործողություն՝ առանց զրոյի բաժանելիս սխալ գցելու։
  • Փոխվել է լարերի միացման տրամաբանություն. Օրինակ, «echo «sum:» արտահայտությունը: $a + $b'-ը նախկինում մեկնաբանվում էր որպես 'echo ("sum: " . $a) + $b', իսկ PHP 8-ում կվերաբերվի որպես 'echo "sum:" : ($a + $b)':
  • Խստացրեց ստուգելով թվաբանական և բիթային գործողությունները, օրինակ՝ «[] % [42]» և «$object + 4» արտահայտությունները կհանգեցնեն սխալի։
  • Իրականացվել է կայուն տեսակավորման ալգորիթմ, որում պահպանվում է նույնական արժեքների կարգը տարբեր վազքներում:
  • Source: opennet.ru

Добавить комментарий