Санҷиши бета PHP 8 оғоз шуд

муаррифӣ карда шуд Нашри бета аввалин бахши нави забони барномасозии PHP 8. Нашри он 26 ноябр ба нақша гирифта шудааст. Ҳамзамон, версияҳои ислоҳкунандаи PHP 7.4.9, 7.3.21 ва
7.2.33, ки хатогиҳо ва осебпазириҳои ҷамъшударо бартараф кард.

асосӣ навовариҳо PHP 8:

  • Ин имконият медиҳад Компилятори JIT, ки истифодаи он хосилнокии мехнатро баланд мебардорад.
  • таъмин Аргументҳои функсияи номбаршуда, ки ба шумо имкон медиҳанд, ки арзишҳоро ба функсия дар робита бо номҳо интиқол диҳед, яъне. Шумо метавонед далелҳоро бо дилхоҳ тартиб интиқол диҳед ва далелҳои ихтиёриро муайян кунед. Масалан, "array_fill(start_index: 0, адад: 100, арзиш: 50)".
  • Ҳангоми даъват кардани усулҳо иҷозат дода шудааст бо истифода аз оператори "?", ки ба шумо имкон медиҳад, ки зангро танҳо дар сурати мавҷуд будани усул оғоз кунед, ки аз санҷишҳои нолозим барои баргардонидани арзиши "null" канорагирӣ мекунад. Масалан, "$dateAsString = $booking->getStartDate()?->asDateTimeString()";
  • таъмин намудҳои иттифоқҳо, муайян кардани коллексияҳои ду ё зиёда намуд (масалан, “функсияи ҷамъиятӣ foo(Foo|Bar $input): int|float;”).
  • таъмин атрибутҳо (эзоҳҳо), ки ба шумо имкон медиҳанд, ки метамаълумотро (ба монанди маълумоти навъи) ба синфҳо бидуни истифодаи синтаксиси Docblock пайваст кунед.
  • Дастгирии ифода гӯгирд, ки бар хилофи коммутатор, метавонад арзишҳоро баргардонад, шартҳои муттаҳидро дастгирӣ кунад, муқоисаи навъи сахтро истифода барад ва мушаххасоти "танаффус" -ро талаб намекунад.

    $ натиҷа = мувофиқат ($ вуруд) {
    0 => "салом",
    '1', '2', '3' => "ҷаҳон",
    };

  • Синтаксиси кӯтоҳшуда таърифҳои синф, ки ба шумо имкон медиҳад, ки таърифи созанда ва хосиятҳоро якҷоя кунед.
  • Навъи нави бозгашт - статистикӣ.
  • Навъи нав - омехта, ки барои муайян кардани он ки оё функсия параметрҳои намудҳои гуногунро қабул мекунад, истифода мешавад.
  • Эзоҳ партофтан барои коркарди истисноҳо.
  • Харитаи заиф сохтани объектхое, ки хангоми чамъоварии ахлот курбони кардан мумкин аст (масалан, барои нигох доштани кэшхои нолозим).
  • Имконият бо истифода аз ифодаи “::class” барои объектҳо (аналогӣ ба даъвати get_class()).
  • Имконият таърифҳо дар блоки сайди истисноҳо, ки ба тағирёбандаҳо вобаста нестанд.
  • Имконият гузоштани вергул пас аз элементи охирин дар рӯйхати параметрҳои функсия.
  • Интерфейси нав Стрингшаванда барои муайян кардани ҳама гуна намуди сатр ё маълумоте, ки ба сатр табдил додан мумкин аст (барои он усули __toString() дастрас аст).
  • Хусусияти нав str_дарбар (), аналоги соддакардашудаи 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" боиси хатогӣ мешаванд.
  • Ба амал бароварда шуд як алгоритми мураттабсозии устувор, ки дар он тартиби арзишҳои якхела дар марҳилаҳои гуногун нигоҳ дошта мешавад.
  • Манбаъ: opennet.ru

Илова Эзоҳ