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

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

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

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

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

<?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اختبر نفسك

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

جميع دروس Fundamentals