دوال السهم
جزء من قسم Logic & Flow في رحلة PHP على Coddy — الدرس 3 من 68.
توفر دوال السهم (Arrow functions)، التي تم تقديمها في PHP 7.4، طريقة أكثر إيجازاً لكتابة الدوال المجهولة البسيطة. فهي تستخدم الكلمة المفتاحية fn بدلاً من صيغة function الكاملة، مما يجعل الكود الخاص بك أقصر وأكثر نظافة.
إليك كيفية إنشاء دالة سهمية (arrow function):
<?php
$greeting = fn($name) => "Hello, " . $name . "!";
echo $greeting("Alice"); // المخرجات: Hello, Alice!
?>لاحظ الفروق الرئيسية: تستخدم دوال السهم (arrow functions) الكلمة fn بدلاً من function، ولديها سهم => يشير إلى التعبير، ولا تحتاج إلى أقواس معقوفة أو جملة return للتعبيرات البسيطة.
أكبر ميزة للدوال السهمية (arrow functions) هي أنها تلتقط المتغيرات تلقائياً من النطاق الأب (parent scope) - لا حاجة لاستخدام الكلمة المفتاحية use:
<?php
$message = "Welcome";
$greeting = fn($name) => $message . ", " . $name . "!";
echo $greeting("Bob"); // المخرجات: Welcome, Bob!
?>تعتبر دوال السهم (Arrow functions) مثالية للعمليات القصيرة والبسيطة حيث تبدو صيغة الدوال المجهولة (anonymous function) التقليدية مطولة للغاية.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
التحدي
سهلقم بإنشاء دالة سهمية (arrow function) تأخذ اسم المنتج كمعامل (parameter) وتعيد ملصق منتج منسقاً. يجب أن تلتقط الدالة السهمية اسم الفئة من النطاق المحيط (surrounding scope).
ستتلقى مدخلين: اسم الفئة واسم المنتج. اقرأ كلا المدخلين، وأنشئ دالة سهمية تلتقط الفئة وتنسق ملصق المنتج كـ "[Category] Product"، ثم استدعِ الدالة السهمية مع اسم المنتج، واطبع النتيجة.
تنسيق الإدخال: سطران - السطر الأول يحتوي على اسم الفئة، والسطر الثاني يحتوي على اسم المنتج
المخرجات المتوقعة: ملصق المنتج المنسق بالتنسيق "[Category] Product"
ورقة مرجعية
تستخدم الدوال السهمية (Arrow functions) الكلمة المفتاحية fn وتوفر بناءً جملياً موجزاً للدوال المجهولة البسيطة:
$greeting = fn($name) => "Hello, " . $name . "!";الميزات الرئيسية:
- استخدام
fnبدلاً منfunction - السهم
=>يشير إلى التعبير - لا حاجة للأقواس المتعرجة أو جملة
returnللتعبيرات البسيطة - التقاط المتغيرات تلقائياً من النطاق الأب (parent scope) بدون الكلمة المفتاحية
use
$message = "Welcome";
$greeting = fn($name) => $message . ", " . $name . "!";
echo $greeting("Bob"); // المخرجات: Welcome, Bob!جرّب بنفسك
<?php
// قراءة المدخلات
$category = trim(fgets(STDIN));
$product = trim(fgets(STDIN));
// TODO: اكتب كودك أدناه
// أنشئ دالة سهمية (arrow function) تلتقط الفئة وتنسق تسمية المنتج
// استدعِ الدالة السهمية واطبع النتيجة
echo $result;
?>يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
1الدوال المتقدمة
الدوال المجهولةالـ Closures وكلمة 'use'دوال السهمدوال الـ Callbackاستخدام 'call_user_func'دوال المتغيراتالتمرير بالمرجعالدوال العوديةمراجعة: مزيج الدوال4المصفوفات متعددة الأبعاد
إنشاء مصفوفة ثنائية الأبعادالوصول إلى عناصر المصفوفة ثنائية الأبعادتعديل عناصر المصفوفة ثنائية الأبعادالتكرار باستخدام الحلقات المتداخلةالمصفوفات الترابطية ثنائية الأبعادمراجعة: تمرين الشبكة البسيطة2معالجة المصفوفات المتقدمة
الإضافة باستخدام 'array_push'الحذف باستخدام 'array_pop'الإضافة باستخدام 'array_unshift'الحذف باستخدام 'array_shift'دمج المصفوفات المفهرسةدمج المصفوفات الترابطيةالاستخراج باستخدام 'array_slice'القيم باستخدام 'in_array'المفاتيح باستخدام 'array_search'مراجعة: تمرين قائمة التشغيل3ترتيب المصفوفات
ترتيب المصفوفات المفهرسة تصاعدياًترتيب المصفوفات المفهرسة تنازلياًترتيب المصفوفات الترابطية حسب القيمةترتيب المصفوفات الترابطية حسب المفتاحالترتيب بالترتيب الطبيعيالترتيب المخصص باستخدام 'usort'مراجعة: ترتيب لوحة المتصدرين