PHP 8-ийн бета туршилт эхэллээ

Оруулсан PHP 8 програмчлалын хэлний шинэ салбарын анхны бета хувилбарыг 26-р сарын 7.4.9-нд гаргахаар төлөвлөж байна. Үүний зэрэгцээ, PHP 7.3.21, XNUMX болон засварлах хувилбарууд
7.2.33, энэ нь хуримтлагдсан алдаа, эмзэг байдлыг арилгасан.

Үндсэн инноваци PHP 8:

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

    $үр дүн = тохирох ($ оролт) {
    0 => "сайн уу",
    '1', '2', '3' => "дэлхий",
    };

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

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