Menu
Coddy logo textTech

תחום ההשפעה של משתנים

חלק מהיחידה יסודות במסלול ה-PHP של Coddy. שיעור 67 מתוך 71.

משתנים שנוצרים בתוך פונקציה נפרדים לחלוטין ממשתנים שמחוצה לה. המושג הזה נקרא תחום משתנה, והבנתו מונעת באגים מבלבלים בקוד שלך.

משתנה שמוגדר בתוך פונקציה קיים רק בתוך אותה פונקציה. הוא נקרא משתנה מקומי:

<?php
function sayHi() {
    $message = "Hello!";
    echo $message;
}

sayHi();
echo $message; // שגיאה: $message לא קיים כאן
?>

המשתנה $message נוצר בתוך sayHi() ונעלם כשהפונקציה מסתיימת. ניסיון לגשת אליו מחוץ לפונקציה גורם לשגיאה.

באופן דומה, משתנים שמוגדרים מחוץ לפונקציה אינם זמינים בה באופן אוטומטי:

<?php
$name = "Alice";

function greet() {
    echo $name; // שגיאה: $name אינו מוגדר בתוך הפונקציה הזו
}

greet();
?>

למרות ש-$name קיים בקוד הראשי, הפונקציה לא יכולה לראות אותו. כדי להשתמש בערכים חיצוניים בתוך פונקציה, העבר אותם כפרמטרים: זו הגישה הנקייה והמומלצת שכבר למדת.

ההפרדה הזאת למעשה מועילה. פירוש הדבר הוא שפונקציות לא ישנו בטעות משתנים בחלקים אחרים של התוכנית שלך, וכך הקוד שלך יהיה צפוי יותר וקל יותר לניפוי שגיאות.

challenge icon

אתגר

קל

קרא שתי שורות קלט:

  1. שם של אדם (למשל, Alice)
  2. סכום בונוס כמספר שלם (למשל, 50)

צור פונקציה בשם calculateBonus שמקבלת שני פרמטרים: $name (מחרוזת) ו-$bonus (מספר שלם).

בתוך הפונקציה:

  • צור משתנה מקומי $baseSalary והגדר אותו ל-1000
  • חשב את השכר הכולל על ידי חיבור $baseSalary ו-$bonus
  • החזר מחרוזת בפורמט: [name] earns [total]

קרא לפונקציה עם ערכי הקלט והדפס את התוצאה שהוחזרה.

דוגמה 1:

אם הקלט הוא Alice ו-50, הפלט צריך להיות:

Alice earns 1050

דוגמה 2:

אם הקלט הוא Bob ו-200, הפלט צריך להיות:

Bob earns 1200

דוגמה 3:

אם הקלט הוא Emma ו-0, הפלט צריך להיות:

Emma earns 1000

נסו בעצמכם

<?php
// קראו את הקלט
$name = trim(fgets(STDIN));
$bonus = intval(fgets(STDIN));

// TODO: צרו את הפונקציה calculateBonus להלן
// - עליה לקבל את $name (string) ואת $bonus (int) כפרמטרים
// - צרו משתנה מקומי $baseSalary שערכו 1000
// - חשבו את השכר הכולל והחזירו "[name] earns [total]"



// קראו לפונקציה והדפיסו את התוצאה
echo calculateBonus($name, $bonus);
?>
quiz iconבחנו את עצמכם

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

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

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