تخطَّ إلى المحتوى

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 الكامل بالعربي.