function / fn
الدوال المجهولة والإغلاقات (Closures) function / fn
دالة بلا اسم تُخزَّن في متغيّر أو تُمرَّر كمعامل — تلتقط متغيّرات محيطة بـ use أو تلقائيًا مع fn.
الدالة المجهولة (Closure) تُعرَّف بـ function بلا اسم، ولا ترى متغيّرات النطاق المحيط بها إلا عبر use ($var) — بالقيمة افتراضيًا، أو بالمرجع مع use (&$var).
dوال الأسهم fn (منذ PHP 7.4) صيغة أقصر لتعبير واحد، تلتقط المتغيّرات المحيطة تلقائيًا بالقيمة دون الحاجة لـ use.
الصياغة
$f = function ($x) use ($y) { return $x + $y; };
$f = fn($x) => $x + $y;📄 مثال
$tax = 15; $withTax = fn($price) => $price + ($price * $tax / 100); echo $withTax(100); // 115
أهم النقاط
| العنصر | الوظيفة |
|---|---|
| use ($var) | التقاط بالقيمة — نسخة ثابتة وقت التعريف |
| use (&$var) | التقاط بالمرجع — يعكس التغييرات اللاحقة |
| fn(...) => expr | التقاط تلقائي بالقيمة، تعبير واحد فقط |
💡 نصائح عملية
- استخدم fn للمعاملات القصيرة مع array_map/array_filter/usort
- استخدم function الكلاسيكية عند الحاجة لأكثر من سطر منطق
⚠️ أخطاء شائعة
- توقّع أن use ($var) بلا & تعكس تغييرات لاحقة على المتغيّر الأصلي
- محاولة كتابة أكثر من تعبير واحد داخل fn
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار PHP الكامل بالعربي.