PHP 8дин бета сыноосу башталды

киргизилген PHP 8 программалоо тилинин жаңы бутагынын биринчи бета версиясы 26-ноябрга пландаштырылган. Ошол эле учурда, PHP 7.4.9, 7.3.21 жана түзөтүүчү релиздери
7.2.33, бул топтолгон каталарды жана кемчиликтерди жок кылды.

негизги инновациялар PHP 8:

  • киргизүү JIT компилятору, аны пайдалануу эмгек ендурумдуулугун жогорулатат.
  • колдоо аталган функциянын аргументтери, аттарга карата функцияга маанилерди өткөрүүгө мүмкүндүк берет, б.а. Сиз аргументтерди каалаган тартипте өткөрүп, кошумча аргументтерди аныктай аласыз. Мисалы, "array_fill(старт_индекс: 0, сан: 100, маани: 50)".
  • Методдорду чакырганда жол "?" операторун колдонуу, бул ыкма бар болсо гана чалууну баштоого мүмкүндүк берет, бул "нөл" маанисин кайтаруу үчүн ашыкча текшерүүлөрдү болтурбайт. Мисалы, "$dateAsString = $booking->getStartDate()?->asDateTimeString()";
  • колдоо союз түрлөрү, эки же андан көп түрдөгү коллекцияларды аныктоо (мисалы, “коомдук функция foo(Foo|Bar $input): int|float;”).
  • колдоо атрибуттар (аннотациялар) Docblock синтаксисин колдонбостон, метадайындарды (мисалы, типтеги маалымат) класстарга байланыштырууга мүмкүндүк берет.
  • Экспресс колдоо мелдеш, которуштуруудан айырмаланып, баалуулуктарды кайтара алат, айкалыштыруу шарттарын колдойт, катуу типтеги салыштырууларды колдоно алат жана "тыныгуу" спецификациясын талап кылбайт.

    $натыйжа = дал келүү($киргизүү) {
    0 => "салам",
    '1', '2', '3' => "дүйнө",
    };

  • Кыскартылган синтаксис класс аныктамалары, конструктордун жана касиеттердин аныктамасын айкалыштырууга мүмкүндүк берет.
  • Жаңы кайтаруу түрү - статикалык.
  • Жаңы түрү - аралаш, бул функция ар кандай типтеги параметрлерди кабыл алаарын аныктоо үчүн колдонулушу мүмкүн.
  • билдирүү ыргытуу өзгөчөлүктөр менен иштөө.
  • WeakMap таштанды чогултуу учурунда курмандыкка чалына турган объекттерди түзүү (мисалы, керексиз кэштерди сактоо үчүн).
  • мүмкүнчүлүк объекттер үчүн “::класс” туюнтмасын колдонуу (get_class() чалууга окшош).
  • мүмкүнчүлүк өзгөрмөлөргө байланбаган өзгөчөлүктөрдү кармоо блогундагы аныктамалар.
  • мүмкүнчүлүк функциянын параметрлеринин тизмесиндеги акыркы элементтен кийин үтүр калтыруу.
  • Жаңы интерфейс Stringable сапка айландырыла турган ар кандай сап түрлөрүн же берилиштерди аныктоо үчүн (бул үчүн __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

Комментарий кошуу