שנים שתכנתּי בדוטנט הרגילו אותי שלכל משתנה יש פונקציות שקיימות עבורו מתוקף השתייכותו למחלקה מסויימת. ב-PHP שהיא שפה פרוצדורלית זה לא כך, ואפשר לקרוא לכל פונקציה עם כל משתנה, ולפעמים נשאלת השאלה מה המשמעות של קריאה לפונקציה מסויימת עם משתנים שונים.
דוגמה לכך היא פונקציות הבודקות אם משתנה הוא ריק. ישנן 3 פונקציות כאלה ב-PHP והן: isset()
, empty()
, is_null()
. המאמר PHP isset() vs empty() vs is_null() מסביר בגדול את ההבדלים:
isset
מחזיר תשובה חיובית (true
) אם המשתנה אינו null
,
is_null()
הוא בבירור ההפך מ–isset()
(חוץ מהעובדה שאפשר לקרוא ל-isset
עם משתנים בלתי ידועים, ואילו ל-is_null
רק עם משתנים שהוצהרו),
ו-empty()
מחזיר true
עבור מחרוזת ריקה, מערך ריק, null
, 0, ומשתנה לא מאותחל.
חוץ מזה יש במאמר ההוא טבלה עם ערכי משתנים שונים ומה תחזיר עבורם כל אחת מהפונקציות. ממש עבודת מחקר מעמיקה, ובונוס נוסף הוא שהמחבר מראה את הקוד שהניב את הטבלה הזאת. לגזור ולשמור.
יש עוד שיטה למרות שהיא פחות נכונה. אני בדרך כלל מתייחס למשתנים ריקים בתור false ובודק אותם עם if. צריך להיזהר עם זה קצת אבל בדרך כלל זה מתאים.
רעיון יפה, על אף הסכנה הקטנה 🙂