בדיקה אם מפתח קיים
חלק מהיחידה יסודות במסלול ה-PHP של Coddy. שיעור 45 מתוך 71.
כשעובדים עם מערכים אסוציאטיביים, לעיתים קרובות צריך לבדוק אם מפתח מסוים קיים לפני שמנסים לגשת לערך שלו. ניסיון לגשת למפתח שאינו קיים עלול לגרום לשגיאות, ולכן PHP מספקת את הפונקציה array_key_exists() כדי לבדוק זאת בבטחה קודם.
<?php
$person = [
"name" => "Alice",
"age" => 25
];
if (array_key_exists("name", $person)) {
echo "Name exists!";
}
if (array_key_exists("city", $person)) {
echo "City exists!";
} else {
echo "City not found";
}
?>הפונקציה מקבלת שני ארגומנטים: המפתח שאתה מחפש והמערך שבו לחפש. היא מחזירה true אם המפתח קיים, ו־false אחרת. לכן היא מתאימה במיוחד לשימוש בתנאים.
בדיקה זו שימושית במיוחד כשעובדים עם נתונים שעשויים להיות חלקיים, כמו קלט מהמשתמש או נתונים ממקורות חיצוניים, כאשר אי אפשר להבטיח שכל המפתחות הצפויים קיימים.
אתגר
קלקרא שורת קלט המכילה אובייקט JSON שמייצג נתוני משתמש (למשל, {"username": "john_doe", "email": "john@example.com", "age": 28}).
לאחר מכן קרא שני קלטים נוספים:
- מחרוזת
key1- המפתח הראשון לבדיקה - מחרוזת
key2- המפתח השני לבדיקה
צור מערך אסוציאטיבי מתוך קלט ה-JSON, ואז:
- בדוק אם
key1קיים במערך. אם כן, הדפס את הערך שמשויך אליו. אם לא, הדפסKey not found. - בדוק אם
key2קיים במערך. אם כן, הדפס את הערך שמשויך אליו. אם לא, הדפסKey not found.
הדפס כל תוצאה בשורה נפרדת.
דוגמה:
אם הקלטים הם {"username": "john_doe", "email": "john@example.com", "age": 28}, username ו-phone, הפלט צריך להיות:
john_doe
Key not foundאם הקלטים הם {"title": "Manager", "department": "Sales"}, salary ו-department, הפלט צריך להיות:
Key not found
Salesנסו בעצמכם
<?php
// קראו את קלט ה-JSON
$jsonInput = trim(fgets(STDIN));
$key1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));
// המירו את JSON למערך אסוציאטיבי
$userData = (array)json_decode($jsonInput, true);
// TODO: כתבו את הקוד שלכם למטה
// בדקו אם key1 קיים והדפיסו את הערך או את הטקסט המדויק מההוראות
// בדקו אם key2 קיים והדפיסו את הערך או את הטקסט המדויק מההוראות
?>השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
4אופרטורי השוואה ולוגיקה
אופרטורי השוואהשוויון וזהותאופרטורים לוגיים — חלק 1אופרטורים לוגיים — חלק 2סיכום — לוגיקה פשוטה7מערכים חלק 2 - אסוציאטיביים
מבוא למערכים אסוציאטיבייםגישה לערכים לפי מפתחשינוי ערכים לפי מפתחהוספת זוגות מפתח-ערך חדשיםבדיקה אם מפתח קייםסיכום - מאגר נתונים של מפתח-ערך2משתנים וסוגי נתונים
מספריםמחרוזות ומירכאותערכים בוליאנייםכללי מתן שמותסיכום – אתחול משתניםמשתנים ריקיםשרשור מחרוזותקבלת קלט מהמשתמשהמרה לסוגים שונים3אופרטורים בסיסיים
אופרטורים אריתמטייםאופרטור מודולואופרטור חזקההשמה משולבתהגדלה והקטנהקדימות אופרטוריםסיכום — חישובים פשוטיםאופרטורים למחרוזותתרגלו בעצמכם: קומפיילר PHP אונליין