30-08-2005, 23:59
|
|
|
|
חבר מתאריך: 09.04.02
הודעות: 8,000
|
|
קריאה לפונקציה ע"י מספר הארגומנטים שסופקו
כתבתי פונקציה, שבתוכה יש קריאה לפונקציה אחרת.
הפונקציה הראשית מתחילה ככה:
קוד PHP:
function func($bla, $bla2, $bla3, $arg1, $arg2)
כאשר arg1 ו-arg2 הם אופציונאליים.
בעיה אחת, היא שאם אני לא נותן את כל הארגומנטים לפונקציה שאני כותב, היא מוציאה שגיאה. את בעיה זו ניתן לפתור על ידי נתינת הערך null לארגומנטים האופציונאליים, אבל זה עדייך סתם סיבוך ומבזבז לי 8 תווים. יש פתרון יותר נורמלי?
בעיה שניה:
אני רוצה לבצע את הפונקציה המשנית (זו שבתוך הפונקציה הראשית) כשהיא מקבלת פרמטרים אופציונאליים שנשלחים מהפוקציה הראשית. למשל:
קוד PHP:
function func($bla, $bla2, $bla3, $arg1, $arg2) { func2($bla, $arg1); }
כמו שאתם רואים, חלק מהפרמטרים ש-func2 מקבלת הם אופציונאליים, וחלקם לא.
כדי להחליט אם אני רוצה להשתמש בפרמטרים האופציונאליים, אני משתמש במבנה if, שבודק אם הפרמטרים האופציונאליים (כאמור, arg1 ו-arg2) שווים ל-null או לא. אם הם לא שווים ל-null (כלומר יש להם ערך) אני קובע מחרוזת שתשמש כקריאה ל-func2, ומפעיל אותה עם eval. הנה דוגמא:
קוד PHP:
if ($arg1 != null && $arg2 = null) { $str = 'function($arg, $arg1)'; } elseif ($arg1 != null && $arg2 != null) { $str = 'function($arg, $arg1, $arg2)'; } eval($str);
יש דרך יותר אלגנטית/נוחה/קצרה לעשות את זה?
תודה מראש לעוזרים!
|