בדיקה אם מפתח קיים
חלק מהיחידה יסודות במסלול ה-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 אונליין