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

معاملات الدوال

جزء من قسم الأساسيات في رحلة PHP على Coddy. الدرس 62 من 71.

الدالة sayHello من الدرس السابق تفعل الشيء نفسه دائمًا. ولكن ماذا لو أردت تحية أشخاص مختلفين؟ تتيح لك المعلمات تمرير البيانات إلى دالة، مما يجعلها مرنة وديناميكية.

المعاملات هي متغيرات مُدرجة داخل القوسين عند التصريح عن دالة. عند استدعاء الدالة، تقدّم قيمًا (تُسمّى وسائط) يتم إسنادها إلى تلك المعاملات:

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

greet("Alice");
greet("Bob");
?>

هذا يُخرج:

Hello, Alice!
Hello, Bob!

يعمل المُعامل $name كعنصر نائب. في كل مرة تستدعي فيها greet()، تستبدل الوسيطة التي تمررها عنصرَ النائب هذا داخل الدالة.

يمكن للدوال قبول معلمات متعددة، مفصولة بفواصل:

<?php
function introduce($name, $age) {
    echo "$name is $age years old.\n";
}

introduce("Alice", 25);
introduce("Bob", 30);
?>

يُنتج هذا:

Alice is 25 years old.
Bob is 30 years old.

عند استدعاء دالة ذات معلمات متعددة، يكون الترتيب مهمًا: تذهب الوسيطة الأولى إلى المعلمة الأولى، والثانية إلى الثانية، وهكذا.

challenge icon

التحدي

سهل

اقرأ ثلاثة أسطر من الإدخال:

  1. اسم شخص (مثل Alice)
  2. اسم مدينة (مثل Paris)
  3. سنة (مثل 2020)

أنشئ دالة تُسمى describePerson وتقبل ثلاثة معاملات: $name و$city و$year. يجب أن تطبع الدالة رسالة بالتنسيق التالي:

[name] moved to [city] in [year].

استدعِ الدالة باستخدام قيم الإدخال.

المثال 1:

إذا كانت المدخلات هي Alice وParis و2020، فيجب أن يكون الناتج:

Alice moved to Paris in 2020.

المثال 2:

إذا كانت المدخلات هي Bob وTokyo و2018، فيجب أن يكون الناتج:

Bob moved to Tokyo in 2018.

المثال 3:

إذا كانت المدخلات هي Emma وNew York و2015، فيجب أن يكون الناتج:

Emma moved to New York in 2015.

جرّب بنفسك

<?php
// اقرأ المدخلات
$name = trim(fgets(STDIN));
$city = trim(fgets(STDIN));
$year = trim(fgets(STDIN));

// TODO: أنشئ دالة تسمى describePerson تقبل ثلاثة معاملات
// ($name, $city, $year) وتطبع الرسالة بالتنسيق المطلوب


// استدعِ الدالة بقيم المدخلات

?>
quiz iconاختبر نفسك

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

جميع دروس الأساسيات

تدرّب بنفسك: مترجم PHP عبر الإنترنت