القيم الافتراضية للمعاملات
جزء من قسم Fundamentals في رحلة PHP على Coddy — الدرس 64 من 71.
في بعض الأحيان، قد ترغب في أن يكون لمعلمة الدالة قيمة احتياطية عندما لا يتم توفير وسيط. تتيح لك قيم المعلمات الافتراضية تحديد ما يجب أن تكون عليه المعلمة إذا لم يقم المستدعي بتحديدها.
لتعيين قيمة افتراضية، قم بتعيينها مباشرة في إعلان الدالة باستخدام عامل =:
<?php
function greet($name = "Guest") {
echo "Hello, $name!\n";
}
greet("Alice");
greet();
?>هذا ينتج:
Hello, Alice!
Hello, Guest!عندما تستدعي greet("Alice")، تتجاوز الوسيطة القيمة الافتراضية. وعندما تستدعي greet() بدون وسيطة، يستخدم PHP "Guest" بدلاً من ذلك.
يمكنك المزج بين المعلمات المطلوبة والاختيارية، ولكن المعلمات ذات القيم الافتراضية يجب أن تأتي بعد المعلمات المطلوبة:
<?php
function createUser($name, $role = "member") {
return "$name is a $role";
}
echo createUser("Alice") . "\n";
echo createUser("Bob", "admin");
?>هذا ينتج:
Alice is a member
Bob is a adminالمعلمة الأولى $name مطلوبة، بينما $role تكون قيمتها الافتراضية "member" إذا لم يتم توفيرها. هذا النمط يجعل دوالك أكثر مرونة دون مطالبة المستدعين بتقديم كل وسيط دائمًا.
التحدي
سهلاقرأ سطرين من المدخلات:
- اسم المنتج (على سبيل المثال،
Laptop) - الكمية (على سبيل المثال،
5) — قد يكون هذا المدخل فارغاً
أنشئ دالة تسمى formatOrder تقبل معاملين: $product (مطلوب) و $quantity (اختياري، القيمة الافتراضية هي 1). يجب أن تعيد الدالة سلسلة نصية بالتنسيق التالي:
Order: [quantity]x [product]إذا كان مدخل الكمية فارغاً، فاستدعِ الدالة باستخدام اسم المنتج فقط (باستخدام الكمية الافتراضية). بخلاف ذلك، استدعِها بكلتا القيمتين.
اطبع النتيجة المعادة.
المثال 1:
إذا كانت المدخلات هي Laptop و 5، يجب أن يكون المخرج:
Order: 5x Laptopالمثال 2:
إذا كانت المدخلات هي Keyboard وسطر فارغ، يجب أن يكون المخرج:
Order: 1x Keyboardالمثال 3:
إذا كانت المدخلات هي Monitor و 3، يجب أن يكون المخرج:
Order: 3x Monitorورقة مرجعية
تسمح لك قيم المعلمات الافتراضية بتحديد قيم احتياطية لمعلمات الدالة عندما لا يتم توفير أي وسيط.
لتعيين قيمة افتراضية، قم بتعيينها في إعلان الدالة باستخدام =:
<?php
function greet($name = "Guest") {
echo "Hello, $name!\n";
}
greet("Alice"); // Hello, Alice!
greet(); // Hello, Guest!
?>عند المزج بين المعلمات المطلوبة والاختيارية، يجب أن تأتي المعلمات ذات القيم الافتراضية بعد المعلمات المطلوبة:
<?php
function createUser($name, $role = "member") {
return "$name is a $role";
}
echo createUser("Alice"); // Alice is a member
echo createUser("Bob", "admin"); // Bob is a admin
?>جرّب بنفسك
<?php
// قراءة المدخلات
$product = trim(fgets(STDIN));
$quantity = trim(fgets(STDIN));
// TODO: قم بإنشاء الدالة formatOrder مع $product (مطلوب) و $quantity (اختياري، القيمة الافتراضية هي 1)
// يجب أن تعيد الدالة سلسلة نصية بالتنسيق التالي: "Order: [quantity]x [product]"
// TODO: استدعِ الدالة بشكل مناسب بناءً على ما إذا كانت الكمية فارغة أم لا
// إذا كانت الكمية فارغة، استدعِ الدالة مع المنتج فقط (استخدم القيمة الافتراضية)
// بخلاف ذلك، استدعِ الدالة مع كل من المنتج والكمية
// طباعة النتيجة
echo $result;
?>يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4معاملات المقارنة والمنطق
معاملات المقارنةالمساواة والتطابقالمعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيط2المتغيرات وأنواع البيانات
الأرقامالنصوص وعلامات الاقتباسالقيم المنطقية (Booleans)قواعد التسميةملخص - تهيئة المتغيراتالمتغيرات الفارغةدمج النصوصاستقبال مدخلات المستخدمتحويل أنواع البيانات5المنطق الشرطي
جملة Ifجملة If - Elseالعامل الثلاثي (Ternary Operator)عامل Null Coalescingجملة Switchمراجعة - اتخاذ القرارات3المعاملات الأساسية
المعاملات الحسابيةمعامل باقي القسمةمعامل الأسالتعيين المركبالزيادة والنقصانأسبقية المعاملاتمراجعة - الحسابات البسيطةمعاملات النصوص