Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

دوال المتغيرات

جزء من قسم Logic & Flow في رحلة PHP على Coddy — الدرس 6 من 68.

توفر الدوال المتغيرة (Variable functions) طريقة أخرى لاستدعاء الدوال ديناميكيًا في 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!
?>

توفر دوال المتغيرات (Variable functions) طريقة نظيفة وبديهية لتنفيذ الكود بشكل ديناميكي. هذه الميزة مفيدة بشكل خاص عندما تحتاج إلى استدعاء دوال مختلفة بناءً على شروط أو مدخلات المستخدم، مما يجعل الكود الخاص بك أكثر مرونة وقابلية للتكيف.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

challenge icon

التحدي

سهل

قم بإنشاء ثلاث دوال: calculateArea تأخذ رقمين (الطول والعرض) وتعيد حاصل ضربهما، و calculatePerimeter تأخذ رقمين وتعيد ضعف مجموعهما، و calculateDiagonal تأخذ رقمين وتعيد الجذر التربيعي لمجموع مربعاتهما.

ستتلقى ثلاثة مدخلات: اسم العملية ("area"، أو "perimeter"، أو "diagonal")، والطول، والعرض. اقرأ المدخلات الثلاثة، وقم بتخزين اسم الدالة في متغير، واستدعِ تلك الدالة باستخدام صيغة الدالة المتغيرة (variable function syntax) مع القياسين، واطبع النتيجة.

تنسيق الإدخال: ثلاثة أسطر - السطر الأول يحتوي على اسم العملية، والسطر الثاني يحتوي على الطول (رقم قد يحتوي على كسور عشرية)، والسطر الثالث يحتوي على العرض (رقم قد يحتوي على كسور عشرية)

المخرجات المتوقعة: نتيجة العملية الحسابية

ورقة مرجعية

تسمح لك الدوال المتغيرة (Variable functions) باستدعاء الدوال بشكل ديناميكي من خلال معاملة المتغير الذي يحتوي على اسم الدالة كأنه الدالة نفسها.

الصيغة الأساسية - أضف أقواسًا إلى متغير يحتوي على اسم دالة:

<?php
function sayHello() {
    echo "Hello World!";
}

$functionName = "sayHello";
$functionName();  // المخرجات: Hello World!
?>

تعمل الدوال المتغيرة مع المعاملات أيضًا:

<?php
function greet($name) {
    echo "Hello, " . $name . "!";
}

$func = "greet";
$func("Alice");  // المخرجات: Hello, Alice!
?>

جرّب بنفسك

<?php
// قراءة المدخلات
$operation = trim(fgets(STDIN));
$length = floatval(fgets(STDIN));
$width = floatval(fgets(STDIN));

// TODO: قم بإنشاء الدوال الثلاث هنا (calculateArea, calculatePerimeter, calculateDiagonal)

// TODO: استدعِ الدالة المناسبة باستخدام بناء جملة الدالة المتغيرة وقم بتخزين النتيجة

// إخراج النتيجة
echo $result;
?>
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow