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()»;
  • колдоо союз түрлөрү, эки же андан көп түрдөгү коллекцияларды аныктоо (мисалы, “коомдук функция foo(Foo|Bar $input): int|float;”).
  • колдоо атрибуттар (аннотациялар) Docblock синтаксисин колдонбостон, метадайындарды (мисалы, типтеги маалымат) класстарга байланыштырууга мүмкүндүк берет.
  • Поддержка выражений мелдеш, которые в отличие от switch могут возвращать значения, поддерживают комбинирование условий, используют строгое сравнение типов и не требуют указания «break».

    $result = match($input) {
    0 => «hello»,
    ‘1’, ‘2’, ‘3’ => «world»,
    };

  • Кыскартылган синтаксис класс аныктамалары, конструктордун жана касиеттердин аныктамасын айкалыштырууга мүмкүндүк берет.
  • Жаңы кайтаруу түрү - статикалык.
  • Жаңы түрү - аралаш, бул функция ар кандай типтеги параметрлерди кабыл алаарын аныктоо үчүн колдонулушу мүмкүн.
  • билдирүү ыргытуу өзгөчөлүктөр менен иштөө.
  • 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

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