תחום ההשפעה של משתנים
חלק מהיחידה יסודות במסלול ה-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 קיים בקוד הראשי, הפונקציה לא יכולה לראות אותו. כדי להשתמש בערכים חיצוניים בתוך פונקציה, העבר אותם כפרמטרים: זו הגישה הנקייה והמומלצת שכבר למדת.
ההפרדה הזאת למעשה מועילה. פירוש הדבר הוא שפונקציות לא ישנו בטעות משתנים בחלקים אחרים של התוכנית שלך, וכך הקוד שלך יהיה צפוי יותר וקל יותר לניפוי שגיאות.
אתגר
קלקרא שתי שורות קלט:
- שם של אדם (למשל,
Alice) - סכום בונוס כמספר שלם (למשל,
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);
?>השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
4אופרטורי השוואה ולוגיקה
אופרטורי השוואהשוויון וזהותאופרטורים לוגיים — חלק 1אופרטורים לוגיים — חלק 2סיכום — לוגיקה פשוטה2משתנים וסוגי נתונים
מספריםמחרוזות ומירכאותערכים בוליאנייםכללי מתן שמותסיכום – אתחול משתניםמשתנים ריקיםשרשור מחרוזותקבלת קלט מהמשתמשהמרה לסוגים שונים3אופרטורים בסיסיים
אופרטורים אריתמטייםאופרטור מודולואופרטור חזקההשמה משולבתהגדלה והקטנהקדימות אופרטוריםסיכום — חישובים פשוטיםאופרטורים למחרוזותתרגלו בעצמכם: קומפיילר PHP אונליין