Menu
Coddy logo textTech

ערכי ברירת מחדל לפרמטרים

חלק מהיחידה יסודות במסלול ה-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
// קרא את הקלט
$product = trim(fgets(STDIN));
$quantity = trim(fgets(STDIN));

// TODO: צור את הפונקציה formatOrder עם $product (פרמטר חובה) ו-$quantity (פרמטר אופציונלי, שערך ברירת המחדל שלו הוא 1)
// הפונקציה צריכה להחזיר מחרוזת בפורמט: "Order: [quantity]x [product]"


// TODO: קרא לפונקציה בהתאם לשאלה אם quantity ריק או לא
// אם quantity ריק, קרא לפונקציה עם product בלבד (השתמש בערך ברירת המחדל)
// אחרת, קרא לפונקציה עם product ו-quantity


// הדפס את התוצאה
echo $result;
?>
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: קומפיילר PHP אונליין