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»,
    };

  • Богиночилсан синтакс Ангийн тодорхойлолтууд нь бүтээгч болон шинж чанаруудын тодорхойлолтыг нэгтгэх боломжийг олгодог.
  • Шинэ буцах төрөл - статик.
  • Шинэ төрөл - холимог, функц нь өөр өөр төрлийн параметрүүдийг хүлээн авах эсэхийг тодорхойлоход ашиглаж болно.
  • Үг хэлэх хаях үл хамаарах зүйлсийг зохицуулах.
  • Сул газрын зураг хог цуглуулах явцад золиослох боломжтой объектуудыг бий болгох (жишээлбэл, шаардлагагүй кэш хадгалах).
  • Боломж объектын хувьд “::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]" ба "$объект + 4" илэрхийлэл нь алдаа гаргах болно.
  • Хэрэгжүүлсэн ижил утгуудын дарааллыг өөр өөр гүйдлээр хадгалдаг тогтвортой эрэмбэлэх алгоритм.
  • Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх