دوال المتغيرات
جزء من قسم المنطق وتدفق التنفيذ في رحلة PHP على Coddy. الدرس 6 من 68.
توفر الدوال المتغيرة طريقة أخرى لاستدعاء الدوال ديناميكيًا في PHP. بدلًا من استخدام call_user_func()، يمكنك استدعاء دالة مباشرةً من خلال التعامل مع متغير يحتوي على اسم الدالة كما لو كان الدالة نفسها.
الصياغة بسيطة: إذا كان لديك متغير يحتوي على اسم دالة، فيمكنك استدعاء تلك الدالة بإضافة أقواس إلى المتغير:
<?php
function sayHello() {
echo "Hello World!";
}
$functionName = "sayHello";
$functionName(); // الناتج: Hello World!
?>ينجح هذا أيضًا مع الدوال التي تقبل معلمات. ما عليك سوى تمرير الوسائط داخل الأقواس:
<?php
function greet($name) {
echo "Hello, " . $name . "!";
}
$func = "greet";
$func("Alice"); // الناتج: Hello, Alice!
?>توفر الدوال المتغيرة طريقة واضحة وبديهية لتنفيذ التعليمات البرمجية ديناميكيًا. وتكون هذه الميزة مفيدة بشكل خاص عندما تحتاج إلى استدعاء دوال مختلفة بناءً على الشروط أو مدخلات المستخدم، مما يجعل تعليماتك البرمجية أكثر مرونة وقابلية للتكيف.
التحدي
سهلأنشئ ثلاث دوال: calculateArea التي تأخذ عددين (الطول والعرض) وتُرجع حاصل ضربهما، وcalculatePerimeter التي تأخذ عددين وتُرجع ضعف مجموعهما، وcalculateDiagonal التي تأخذ عددين وتُرجع الجذر التربيعي لمجموع مربعيهما.
ستتلقى ثلاثة مدخلات: اسم العملية ("area" أو "perimeter" أو "diagonal")، والطول، والعرض. اقرأ المدخلات الثلاثة كلها، وخزّن اسم الدالة في متغير، واستدعِ تلك الدالة باستخدام صيغة استدعاء الدالة عبر متغير مع القياسين. خزّن القيمة التي تُرجعها في $result: يطبعها السطر الموجود أسفل الكود.
تنسيق الإدخال: ثلاثة أسطر - يحتوي السطر الأول على اسم العملية، ويحتوي السطر الثاني على الطول (عدد قد يحتوي على كسور عشرية)، ويحتوي السطر الثالث على العرض (عدد قد يحتوي على كسور عشرية)
المخرجات المتوقعة: نتيجة العملية الحسابية
جرّب بنفسك
<?php
// اقرأ المدخلات
$operation = trim(fgets(STDIN));
$length = floatval(fgets(STDIN));
$width = floatval(fgets(STDIN));
// TODO: أنشئ الدوال الثلاث هنا (calculateArea, calculatePerimeter, calculateDiagonal)
// TODO: استدعِ الدالة المناسبة باستخدام صيغة الدوال المتغيرة وخزّن النتيجة في $result
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق وتدفق التنفيذ
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'مراجعة: ترتيب لوحة المتصدرينتدرّب بنفسك: مترجم PHP عبر الإنترنت