Menu
CoddyTech

אופרטור איחוד null

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

אופרטור איחוד עם null (??) מספק דרך נוחה להשתמש בערך ברירת מחדל כאשר משתנה הוא null או אינו קיים. הדבר שימושי במיוחד כשעובדים עם נתונים שעשויים להיות חסרים.

התחביר מציב את ?? בין המשתנה שיש לבדוק לבין ערך ברירת המחדל:

<?php
$username = null;

$displayName = $username ?? "Guest";
echo $displayName; // Guest
?>

PHP בודקת אם $username הוא null. מכיוון שכן, האופרטור מחזיר במקום זאת "אורח". אם היה ל־$username ערך, היה נעשה שימוש בערך הזה.

<?php
$username = "Alice";

$displayName = $username ?? "Guest";
echo $displayName; // Alice
?>

אופרטור איחוד הערך null פועל גם כאשר משתנה כלל לא הוגדר, מבלי לגרום לשגיאה:

<?php
// $color אינו מוגדר בשום מקום
$selectedColor = $color ?? "blue";
echo $selectedColor; // blue
?>

כך ?? נקי יותר משימוש באופרטור תנאי עם בדיקות isset(). הוא מושלם להגדרת ערכי ברירת מחדל הגיוניים למקרה שחסרים נתונים.

challenge icon

אתגר

קל

קרא שני ערכים מהקלט: מחרוזת nickname ומחרוזת theme.

השתמש באופרטור איחוד ערכי null כדי לטפל בערכים שעשויים להיות חסרים:

  1. צור משתנה $userNickname שהערך שלו הוא null. לאחר מכן השתמש באופרטור איחוד ערכי null כדי להציב ב-$displayNickname את הערך של $userNickname אם הוא קיים ואינו null; אחרת, השתמש בערך הקלט nickname.
  2. צור משתנה $userTheme והצב בו את ערך הקלט theme. השתמש באופרטור איחוד ערכי null כדי להציב ב-$selectedTheme את הערך של $userTheme אם הוא קיים ואינו null; אחרת, השתמש ב-dark כברירת המחדל.
  3. השתמש באופרטור איחוד ערכי null ישירות עם המשתנה הלא מוגדר $language (אל תגדיר אותו) כדי להציב ב-$displayLanguage את הערך של $language אם הוא קיים; אחרת, השתמש ב-English כברירת המחדל.

הדפס כל תוצאה בשורה חדשה, לפי הסדר הזה: $displayNickname, $selectedTheme, $displayLanguage.

דוגמה:

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

Player1
light
English

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

GuestUser
blue
English

נסו בעצמכם

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

// TODO: כתבו את הקוד שלכם למטה
// 1. צרו את $userNickname עם הערך null, ואז השתמשו ב-?? כדי להציב ערך ב-$displayNickname
// 2. צרו את $userTheme עם קלט ערכת הנושא, ואז השתמשו ב-?? כדי להציב ערך ב-$selectedTheme (ברירת מחדל: הטקסט המדויק מההוראות)
// 3. השתמשו ב-?? עם $language שאינו מוגדר כדי להציב ערך ב-$displayLanguage (ברירת מחדל: הטקסט המדויק מההוראות)

// הדפיסו את התוצאות (כל אחת בשורה חדשה)
echo $displayNickname . "\n";
echo $selectedTheme . "\n";
echo $displayLanguage . "\n";
?>
quiz iconבחנו את עצמכם

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

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

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