1. مبتدئ

    ما الفرق بين Type Juggling وموجه declare(strict_types=1) في PHP؟

    Type Juggling يقوم بتحويل الأنواع ضمنياً وبشكل تلقائي، بينما strict_types يفرض مطابقة دقيقة للأنواع في المعاملات والقيم المعادة ويرمي TypeError عند عدم التطابق.

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

    ما الفرق بين عامل المقارنة == (Equal) وعامل التطابق === (Identical) في PHP 8+؟

    يقارن == القيم بعد محاولة تحويل الأنواع، بينما يقارن === القيمة والنوع معاً دون أي تحويل ضمني.

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

    كيف يعمل OPcache وما دور مجمع JIT (Just-In-Time) الذي أضيف في PHP 8؟

    يقوم OPcache بتخزين الـ Opcode المجمع مسبقاً في الذاكرة لتفادي إعادة قراءة الملفات، بينما يقوم JIT بترجمة مقاطع الـ Opcode المتكررة مباشرة إلى تعليمات الآلة الأصلية (Machine Code).

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

    كيف تدير PHP الذاكرة باستخدام عد المراجع (Reference Counting) ونظام جمع الدورات (Cycles Collection)؟

    تخزن المتغيرات في كائنات zval تحتوي على refcount؛ وعندما يصل العداد لصفر تُحرر الذاكرة، ويدير Cycle Collector استرجاع الكائنات ذات المراجع الدائرية المغلقة.

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

    ما الفرق بين عامل Null Coalescing (??) وعامل Nullsafe Operator (?->) في PHP الحديثة؟

    العامل ?? يوفر قيمة بديلة إذا كان المتغير null أو غير معرف، بينما ?-> يسمح باستدعاء الدوال والخصائص بأمان وتجاوز السلسلة إذا كان الكائن null دون رمي خطأ.

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

    ما هي المولدات (Generators) وكيف توفر كلمة yield استهلاك الذاكرة عند قراءة البيانات الضخمة؟

    المولد هو دالة تعيد مكرراً (Iterator) دون تخزين كامل البيانات في الذاكرة، حيث تعيد كل قيمة بـ yield وتعلق التنفيذ حتى يُطلب العنصر التالي.

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

    كيف تطور التسلسل الهرمي للأخطاء والاستثناءات تحت واجهة Throwable في PHP الحديثة؟

    ترث فئات Exception و Error من الواجهة العامة Throwable، مما يتيح التقاط أخطاء المحرك الجسيمة (Fatal Errors) بكتلة try/catch.

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

    كيف تعمل الجلسات (Sessions) في PHP وما هي مشكلة قفل الجلسة (Session Locking) وكيف تحلها؟

    تقفل PHP ملف الجلسة للمستخدم حصرياً طوال فترة تنفيذ الطلب لمنع تضارب البيانات؛ وتحل المشكلة باستدعاء session_write_close() فور الانتهاء من قراءة وتعديل الجلسة.

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

    ما الفرق بين الدوال المجهولة (Closures) ودوال الأسهم (Arrow Functions fn()) في PHP؟

    الـ Closures العادية تتطلب استخدام كلمة use لتمرير المتغيرات الخارجية، بينما الـ Arrow Functions تلتقط المتغيرات من النطاق الخارجي ضمنياً عبر القيمة (By-Value).

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

    كيف تعمل بنية PHP-FPM وما الفرق بين أوضاع إدارة العمليات: static و dynamic و ondemand؟

    PHP-FPM هو مدير عمليات FastCGI؛ وضع static يحافظ على عدد ثابت من العمليات لأقصى أداء، بينما dynamic يغير العدد بناءً على الحمل، وondemand ينشئ العمليات فقط عند وصول الطلب لتوفير الرام.

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