تكرار السؤال: …
الإجابة المختصرة
تسمح بتحويل أي دالة أو ميثود مباشرة إلى كائن Closure مغلق باستخدام (...) دون الحاجة لتمرير نصوص أو مصفوفات غير آمنة.
الشرح
قديماً، كان تمرير ميثود كـ callback يتطلب كتابة مصفوفة نصوص غير آمنة: [$this, 'handleMethod'] أو 'strlen'. في PHP 8.1، أضيفت صياغة First-Class Callable: strlen(...) أو $this->handleMethod(...)؛ حيث يقوم المحرك بإنشاء كائن Closure فوري مع فحص وجود الدالة وصحتها وقت الترجمة ودعم إكمال الـ IDE التلقائي.
مثال بالكود
$numbers = ["10", "20", "30"];
// الصياغة الحديثة
$integers = array_map(intval(...), $numbers);أخطاء شائعة
- استخدام نصوص أسماء الدوال القديمة في التطبيقات الحديثة مما يمنع أدوات التحليل الساكن من اكتشاف الأخطاء المطبعية.