PHP 8 бета сынағы басталды

Жіберген PHP 8 бағдарламалау тілінің жаңа тармағының бірінші бета-шығарылымы 26 қарашаға жоспарланған. Бұл ретте PHP 7.4.9, 7.3.21 және түзету шығарылымдары
7.2.33, ол жинақталған қателер мен осалдықтарды жойды.

басты инновациялар PHP 8:

  • Қосу JIT компиляторы, оны пайдалану өнімділікті арттырады.
  • қолдау аттарға қатысты функцияға мәндерді беруге мүмкіндік беретін аталған функция аргументтері, яғни. Аргументтерді кез келген ретпен беруге және қосымша аргументтерді анықтауға болады. Мысалы, "массив_толтыру(бастау_индекс: 0, сан: 100, мән: 50)".
  • Әдістерді шақыру кезінде рұқсат етілген «?» операторын пайдалану, бұл әдіс бар болған жағдайда ғана қоңырауды бастауға мүмкіндік береді, бұл «нөл» мәнін қайтару үшін қажетсіз тексерулерді болдырмайды. Мысалы, "$dateAsString = $booking->getStartDate()?->asDateTimeString()";
  • қолдау одақ түрлері, екі немесе одан да көп түрлердің жинақтарын анықтау (мысалы, “жалпыға ортақ функция foo(Foo|Bar $input): int|float;”).
  • қолдау атрибуттар (аннотациялар) Docblock синтаксисін пайдаланбай, метадеректерді (мысалы, түр туралы ақпарат) сыныптарға байланыстыруға мүмкіндік береді.
  • Экспрессиялық қолдау матч, коммутатордан айырмашылығы, мәндерді қайтара алады, біріктіру шарттарын қолдайды, қатаң түрдегі салыстыруларды қолдана алады және «үзіліс» спецификациясын қажет етпейді.

    $нәтиже = сәйкестік($input) {
    0 => "сәлем",
    '1', '2', '3' => “әлем”,
    };

  • Қысқартылған синтаксис конструктор мен қасиеттердің анықтамасын біріктіруге мүмкіндік беретін класс анықтамалары.
  • Жаңа қайтару түрі - статикалық.
  • Жаңа түрі - аралас, ол функцияның әртүрлі типтегі параметрлерді қабылдайтынын анықтау үшін пайдаланылуы мүмкін.
  • Өрнек тастаңыз ерекше жағдайларды өңдеу үшін.
  • Әлсіз карта қоқыс жинау кезінде құрбан болуға болатын нысандарды жасау (мысалы, қажетсіз кэштерді сақтау үшін).
  • Қабілеті нысандар үшін “::class” өрнегін қолдану (get_class() шақыруының аналогы).
  • Қабілеті айнымалы мәндерге байланбаған ерекшеліктерді ұстау блогындағы анықтамалар.
  • Қабілеті функция параметрлері тізіміндегі соңғы элементтен кейін үтір қалдыру.
  • Жаңа интерфейс Жіпті жолға түрлендіруге болатын кез келген жол түрлерін немесе деректерді анықтау үшін (олар үшін __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]" және "$объект + 4" өрнектері қатеге әкеледі.
  • Орындалды тұрақты сұрыптау алгоритмі, онда бірдей мәндердің реті әртүрлі жүгірістерде сақталады.
  • Ақпарат көзі: opennet.ru

пікір қалдыру