بدأ الاختبار التجريبي لـ PHP 8

مقدم من الإصدار التجريبي الأول للفرع الجديد من لغة البرمجة PHP 8. ومن المقرر أن يتم الإصدار في 26 نوفمبر. وفي الوقت نفسه، تم إطلاق الإصدارات التصحيحية لـ PHP 7.4.9 و7.3.21 و
7.2.33 الذي أزال الأخطاء ونقاط الضعف المتراكمة.

رئيسي الابتكارات بي إتش بي 8:

  • السلطة حتى مترجم JITوالتي سيؤدي استخدامها إلى تحسين الإنتاجية.
  • Поддержка وسيطات الدالة المسماة، مما يسمح لك بتمرير القيم إلى الدالة فيما يتعلق بالأسماء، على سبيل المثال. يمكنك تمرير الوسائط بأي ترتيب وتحديد الوسائط الاختيارية. على سبيل المثال، "array_fill(start_index: 0, num: 100, value: 50)".
  • عند استدعاء الأساليب سمح باستخدام عامل التشغيل "؟"، الذي يسمح لك ببدء مكالمة فقط في حالة وجود الطريقة، مما يتجنب عمليات التحقق غير الضرورية لإرجاع القيمة "الخالية". على سبيل المثال، "$dateAsString = $booking->getStartDate()?->asDateTimeString()";
  • Поддержка أنواع الاتحاد، تحديد مجموعات من نوعين أو أكثر (على سبيل المثال، "الوظيفة العامة foo(Foo|Bar $input): int|float;").
  • Поддержка صفات (التعليقات التوضيحية) التي تسمح لك بربط البيانات التعريفية (مثل معلومات النوع) بالفئات دون استخدام بناء جملة Docblock.
  • دعم التعبير مباراة، والتي، على عكس التبديل، يمكنها إرجاع القيم، ودعم شروط الجمع، واستخدام مقارنات الأنواع الصارمة، ولا تتطلب مواصفات "فاصل".

    نتيجة $ = تطابق($إدخال) {
    0 => "مرحبا"،
    '1'، '2'، '3' => "العالم"،
    };

  • بناء الجملة المختصرة تعريفات الفئة، مما يسمح لك بالجمع بين تعريف المنشئ والخصائص.
  • نوع الإرجاع الجديد - ساكن.
  • نوع جديد - مختلط، والتي يمكن استخدامها لتحديد ما إذا كانت الوظيفة تقبل معلمات من أنواع مختلفة.
  • التعبير رمي للتعامل مع الاستثناءات.
  • خريطة ضعيفة لإنشاء كائنات يمكن التضحية بها أثناء جمع البيانات المهملة (على سبيل المثال، لتخزين ذاكرة التخزين المؤقت غير الضرورية).
  • فرصة استخدام التعبير "::class" للكائنات (مشابه لاستدعاء get_class()).
  • فرصة التعريفات في كتلة الالتقاط للاستثناءات غير المرتبطة بالمتغيرات.
  • فرصة ترك فاصلة بعد العنصر الأخير في قائمة معلمات الوظيفة.
  • واجهة جديدة قابل للتثبيت لتحديد أي أنواع سلسلة أو بيانات يمكن تحويلها إلى سلسلة (والتي تتوفر لها طريقة __toString()).
  • ميزة جديدة str_contains ()، وهو نظير مبسط لـ strpos لتحديد حدوث سلسلة فرعية، بالإضافة إلى الدالتين str_starts_with() وstr_ends_with() للتحقق من التطابقات في بداية ونهاية السلسلة.
  • تمت إضافة الميزة فديف ()والتي تنفذ عملية القسمة دون حدوث خطأ عند القسمة على صفر.
  • تغير منطق ربط السلسلة على سبيل المثال، التعبير 'echo "sum:" . تم تفسير $a + $b' سابقًا على أنه "echo" ("sum: " . $a) + $b'، وفي PHP 8 سيتم التعامل معه على أنه "echo "sum: " . ((أ + $ب)'.
  • تشديد التحقق من العمليات الحسابية والبت، على سبيل المثال، التعبيرات "[] % [42]" و"$object + 4" ستؤدي إلى حدوث خطأ.
  • مُنفّذ خوارزمية فرز مستقرة يتم فيها الحفاظ على ترتيب القيم المتطابقة عبر عمليات تشغيل مختلفة.
  • المصدر: opennet.ru

إضافة تعليق