1. مبتدئ

    ما هي مزايا تعبير match في PHP 8 مقارنة بجملة switch الكلاسيكية؟

    match هو تعبير يعيد قيمة مباشرة، ويستخدم المقارنة الصارمة (===)، ولا يحتاج لعبارات break، ويرمي UnhandledMatchError إذا لم تطابق أي حالة.

    اقرأ الشرح الكامل
  2. متوسط

    ما هي السمات (Attributes) في PHP 8+ وكيف تفوقت على تعليقات PHPDoc القديمة؟

    السمات هي بيانات وصفية مهيكلة ومدمجة في لغة PHP رسمياً، ويتم فحص صحتها وقت الترجمة والوصول إليها عبر Reflection دون الحاجة لتحليل نصوص التعليقات.

    اقرأ الشرح الكامل
  3. متوسط

    كيف تعمل التعدادات (Enums) في PHP 8.1 وما الفرق بين Pure Enums و Backed Enums؟

    الـ Pure Enums هي حالات مجردة بلا قيم، بينما الـ Backed Enums ترتبط بقيمة نصية أو رقمية وتدعم دوال من نوع tryFrom() وميثودز داخلية.

    اقرأ الشرح الكامل
  4. مبتدئ

    ما هي المعاملات المسماة (Named Arguments) في PHP 8 وما فائدتها مع الدوال متعددة الخيارات؟

    تتيح تمرير المعاملات بأسمائها بدلاً من ترتيبها، وتسمح بتخطي المعاملات الاختيارية ذات القيم الافتراضية بسهولة.

    اقرأ الشرح الكامل
  5. متقدم

    ما هي ألياف Fibers في PHP 8.1 وكيف تتيح تنفيذ الكود غير المتزامن (Async Concurrency)؟

    هي خيوط تنفيذ دقيقة خفيفة (Coroutines) يمكن إيقافها واستئنافها من أي مكان في مكدس الاستدعاءات، مما يسمح بكتابة كود غير متزامن بدون تعقيد الـ Promises.

    اقرأ الشرح الكامل
  6. متوسط

    ما الفرق بين أنواع الاتحاد (Union Types) وأنواع التقاطع (Intersection Types) في PHP 8+؟

    أنواع الاتحاد (A|B) تقبل قيمة تنتمي للنوع A أو النوع B، بينما أنواع التقاطع (A&B) تشترط أن تطبق القيمة كلا النوعين A و B معاً.

    اقرأ الشرح الكامل
  7. مبتدئ

    ما هي صياغة First-Class Callables الممثلة بـ (...) في PHP 8.1 وكيف تحسن كتابة الـ Callbacks؟

    تسمح بتحويل أي دالة أو ميثود مباشرة إلى كائن Closure مغلق باستخدام (...) دون الحاجة لتمرير نصوص أو مصفوفات غير آمنة.

    اقرأ الشرح الكامل
  8. مبتدئ

    ما هي دوال النصوص الحديثة str_contains و str_starts_with و str_ends_with في PHP 8؟

    دوال أصلية بديهية تفحص وجود نص داخل آخر وتعيد boolean مباشرة، كبديل لدوال strpos المعقدة والمعرضة للخطأ.

    اقرأ الشرح الكامل
  9. متقدم

    ما هو FrankenPHP وكيف يغير نمط تشغيل تطبيقات PHP التقليدي عبر وضع Worker Mode؟

    خادم ويب حديث مبني بـ Go (Caddy) ومحرك PHP مدمج؛ ووضع Worker Mode يبقي التطبيق محملاً في الذاكرة بين الطلبات مما يقلل كلفة إقلاع التطبيق في كل طلب ويرفع الإنتاجية بشكل ملحوظ (يختلف حسب التطبيق).

    اقرأ الشرح الكامل
  10. مبتدئ

    ما هي سمة #[\Override] المضافة في PHP 8.3 وما أهميتها في حماية الوراثة؟

    سمة توضع على الدوال المشتقة لتأكيد أنها تعيد كتابة دالة موجودة بالفعل في الفئة الأب أو الواجهة؛ ويرمي المحرك خطأ وقت الترجمة إذا تغيرت الدالة الأصلية.

    اقرأ الشرح الكامل