معاملات الدوال
جزء من قسم 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.عند استدعاء دالة تحتوي على معلمات متعددة، فإن الترتيب مهم—حيث يذهب الوسيط الأول إلى المعلمة الأولى، والثاني إلى الثانية، وهكذا.
التحدي
سهلاقرأ ثلاثة أسطر من المدخلات:
- اسم الشخص (على سبيل المثال،
Alice) - اسم المدينة (على سبيل المثال،
Paris) - السنة (على سبيل المثال،
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.ورقة مرجعية
المعلمات (Parameters) هي متغيرات يتم إدراجها داخل الأقواس عند التصريح عن دالة. عند استدعاء الدالة، فإنك تقدم قيمًا (وسائط - arguments) يتم تعيينها لتلك المعلمات:
<?php
function greet($name) {
echo "Hello, $name!\n";
}
greet("Alice");
?>يمكن للدوال قبول معلمات متعددة، مفصولة بفاصلات:
<?php
function introduce($name, $age) {
echo "$name is $age years old.\n";
}
introduce("Alice", 25);
?>عند استدعاء دالة بمعلمات متعددة، يكون الترتيب مهمًا - حيث تذهب الوسيطة الأولى إلى المعلمة الأولى، والثانية إلى الثانية، وهكذا.
جرّب بنفسك
<?php
// قراءة المدخلات
$name = trim(fgets(STDIN));
$city = trim(fgets(STDIN));
$year = trim(fgets(STDIN));
// TODO: قم بإنشاء دالة تسمى describePerson تقبل ثلاثة معاملات
// ($name, $city, $year) وتطبع الرسالة بالتنسيق المطلوب
// استدعاء الدالة مع قيم المدخلات
?>يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4معاملات المقارنة والمنطق
معاملات المقارنةالمساواة والتطابقالمعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيط2المتغيرات وأنواع البيانات
الأرقامالنصوص وعلامات الاقتباسالقيم المنطقية (Booleans)قواعد التسميةملخص - تهيئة المتغيراتالمتغيرات الفارغةدمج النصوصاستقبال مدخلات المستخدمتحويل أنواع البيانات5المنطق الشرطي
جملة Ifجملة If - Elseالعامل الثلاثي (Ternary Operator)عامل Null Coalescingجملة Switchمراجعة - اتخاذ القرارات3المعاملات الأساسية
المعاملات الحسابيةمعامل باقي القسمةمعامل الأسالتعيين المركبالزيادة والنقصانأسبقية المعاملاتمراجعة - الحسابات البسيطةمعاملات النصوص