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

القيم الافتراضية للمعاملات

جزء من قسم 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" إذا لم يتم توفيرها. هذا النمط يجعل دوالك أكثر مرونة دون مطالبة المستدعين بتقديم كل وسيط دائمًا.

challenge icon

التحدي

سهل

اقرأ سطرين من المدخلات:

  1. اسم المنتج (على سبيل المثال، Laptop)
  2. الكمية (على سبيل المثال، 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;
?>
quiz iconاختبر نفسك

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

جميع دروس Fundamentals