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