PHP 8 ning beta-sinovi boshlandi

Tanishtirdi PHP 8 dasturlash tilining yangi filialining birinchi beta-versiyasi chiqarilishi 26 noyabrga rejalashtirilgan. Shu bilan birga, PHP 7.4.9, 7.3.21 va tuzatuvchi relizlar
7.2.33, bu to'plangan xatolar va zaifliklarni bartaraf etdi.

asosiy yangiliklar PHP 8:

  • Faollashtirish JIT kompilyatori, ulardan foydalanish samaradorlikni oshiradi.
  • qo'llab-quvvatlash nomli funktsiya argumentlari, nomlarga nisbatan funktsiyaga qiymatlarni o'tkazish imkonini beradi, ya'ni. Argumentlarni istalgan tartibda topshirishingiz va ixtiyoriy argumentlarni belgilashingiz mumkin. Masalan, "array_fill (start_index: 0, son: 100, qiymat: 50)".
  • Qo'ng'iroq qilish usullari ruxsat berilgan “?” operatoridan foydalanib, bu usul mavjud bo'lgandagina qo'ng'iroqni boshlashga imkon beradi, bu esa "null" qiymatini qaytarish uchun keraksiz tekshiruvlardan qochadi. Masalan, "$dateAsString = $booking->getStartDate()?->asDateTimeString()";
  • qo'llab-quvvatlash birlashma turlari, ikki yoki undan ortiq turdagi to'plamlarni aniqlash (masalan, “ommaviy funktsiya foo(Foo|Bar $input): int|float;”).
  • qo'llab-quvvatlash atributlar Docblock sintaksisidan foydalanmasdan metama'lumotlarni (masalan, turdagi ma'lumotlar) sinflarga bog'lash imkonini beruvchi (annotatsiyalar).
  • Ifodani qo'llab-quvvatlash match, bu kalitdan farqli o'laroq, qiymatlarni qaytarishi, birlashtirish shartlarini qo'llab-quvvatlashi, qat'iy turdagi taqqoslashlardan foydalanishi va "buzilish" spetsifikatsiyasini talab qilmaydi.

    $natija = mos ($ kiritish) {
    0 => "salom",
    '1', '2', '3' => "dunyo",
    };

  • Qisqartirilgan sintaksis konstruktor va xususiyatlarning ta'rifini birlashtirishga imkon beruvchi sinf ta'riflari.
  • Yangi qaytish turi - statik.
  • Yangi tur - aralash, bu funksiya har xil turdagi parametrlarni qabul qiladimi yoki yo'qligini aniqlash uchun ishlatilishi mumkin.
  • So'zlashuv otish istisnolarni hal qilish uchun.
  • Zaif xarita axlat yig'ish paytida qurbon bo'lishi mumkin bo'lgan ob'ektlarni yaratish (masalan, keraksiz keshlarni saqlash uchun).
  • imkoniyat ob'ektlar uchun "::class" iborasidan foydalanish (get_class() chaqiruviga o'xshash).
  • imkoniyat o'zgaruvchilarga bog'lanmagan istisnolar blokidagi ta'riflar.
  • imkoniyat funktsiya parametrlari ro'yxatidagi oxirgi elementdan keyin vergul qo'yish.
  • Yangi interfeys Tarmoqli satrga aylantirilishi mumkin bo'lgan har qanday satr turlarini yoki ma'lumotlarini aniqlash uchun (bular uchun __toString() usuli mavjud).
  • Yangi xususiyat str_contains(), pastki qatorning paydo bo'lishini aniqlash uchun strpos ning soddalashtirilgan analogi, shuningdek, satr boshida va oxirida mosliklarni tekshirish uchun str_starts_with() va str_ends_with() funktsiyalari.
  • Qo'shilgan funksiya fdiv(), nolga bo'lishda xatolikka yo'l qo'ymasdan bo'lish amalini bajaradi.
  • O'zgartirildi satrlarni birlashtirish mantig'i. Masalan, 'echo "sum:" iborasi. $a + $b' avval 'echo ("sum: " . $a) + $b' sifatida talqin qilingan va PHP 8 da 'echo "sum:" sifatida ko'rib chiqiladi. ($a + $b)'.
  • Qattiqlashtirilgan arifmetik va bit operatsiyalarini tekshirish, masalan, "[] % [42]" va "$object + 4" iboralari xatolikka olib keladi.
  • Amalga oshirildi barqaror saralash algoritmi, unda bir xil qiymatlar tartibi turli xil yugurishlarda saqlanadi.
  • Manba: opennet.ru

a Izoh qo'shish