![]() |
# 1 |
חבר מתקדם
|
כמה שאלות..
שלום.
יש לי כמה שאלות: 1. רציתי לקבל הסבר פשוט - by-referenct - לא הבנתי מה זה ממש אומר.. בגדול, הבנתי (ויכול להיות שטעיתי) שזה כאילו שולח הפניה במקום ערך חדש. כלומר אם אני עושה: PHP קוד:
זה נכון? כמו כן, מה זה אומר בפונקציות? שאם אני שולח הפניה ומשנה את הפרמטר המתקבל, זה משתנה גם בתוכנית? ----------------------- 2. הביטוי: PHP קוד:
__________________
בברכה, שרף כהן |
![]() |
![]() |
# 2 |
חבר על
|
1. הסימן & מחבר בין הערך הקיים לערך החדש (במקרה שהבאת בין המשתנה $a ל-$b).
2. תנסה לשים פסיק, אולי זה יעבוד: example(,$required); או שבפונקציה עצמה פשוט תהפוך את הסדר: function example($required, $d = 3) |
![]() |
![]() |
# 3 | |
משתמש - היכל התהילה
|
ציטוט:
![]() רק מחזק את אחד, זה אומר שכל שינוי של ערך שמתקבל למשתנה b גם a מושפע ומקבל את הערך של b כלומר שתי המשתנים זהים רק עם שמות שונים.
__________________
בברכה, חגי בלוך גדות. |
|
![]() |
![]() |
# 4 |
משתמש - היכל התהילה
|
ב1 צדקת. הרעיון הוא ששני המשתנים הם שמות שונים לאותו תא בזכרון. אם אתה עושה לדוגמה פונקציה שמקבל מערך ומחליפה את כל התאים שלו ב1 ולא מחזירה כלום המערך שתשלח ישאר אותו דבר. אם תשלח אותו בref אז הוא יוחלף בפועל כיוון שזה אותו מערך ולא העתק שלו.
ב2 הדוגמה לפונקציה שנתת לא חכמה. אם הפרמטר הראשון הוא אופציונאלי והשני חובה, זה הופך למעשה גם את הראשון לחובה. |
![]() |
![]() |
# 5 |
חבר על
|
call by value - הפונקציה מקבלת העתק של המשתנה. כלומר, כל עיבוד של המשתנה הנוכחי לא ישפיע על המשתנה המקורי שנשלח.
call by address/reference - שולח בעצם את המכוון/מצביע לאותו תא בזכרון. משמע, כל עיבוד על אותו משתנה ישפיע על המשתנה המקורי.
__________________
ליאור |
![]() |
![]() |
# 6 |
חבר מתקדם
|
בקשר לראשון הבנתי =]
בקשר לשני - אני שואל אם ברגע שאני כותב את זה ככה, אין דרך לשלוח רק את הפרמטר השני, בעזרת משהו כמו PHP קוד:
__________________
בברכה, שרף כהן |
![]() |
![]() |
# 7 |
משתמש - היכל התהילה
|
תחליף פשוט את הסדר.
__________________
בברכה, חגי בלוך גדות. |
![]() |
![]() |
# 8 |
חבר על
|
גם אם כתבת בפונקציה $a=3 ושלחת ערך למקום הזה, אז זה ישכתב לך את הערך של a.
לכן אתה צריך פשוט להחליף את הסדר, כמו שכבר אמרתי לך פה וגם אחרים.. |
![]() |
![]() |
# 9 |
חבר וותיק
|
בואו נעשה קצת סדר..
--- reference(רפרנס או בעברית מצביע או בקיצור לפעמים ref) - הוא למעשה המצביע(מעיין כתובת) של המשתנה. למעשה כשאני שולח פרמטר כלשהוא בתצורת רפרנס אני מאפשר גישה מלאה אל המשתנה. כלומר- בשליחת משתנה רגילה אני רק מקבל את ערך המשתנה. בשליחת משתנה בתצורת רפרנס כל פעולה שאבצע על הרפרנס תושפע. דוגמאות: בדוגמה זו- הצבתי את a כערך של b PHP קוד:
PHP קוד:
למעשה כאשר אני שולח למתודה/פונקציה ארגומנט עם מצביע(רפרנס), כלומר הפעולות שאבצע עליו ישפיעו על תכולת המשתנה, ולא רק הערך. |
![]() |
![]() |
# 10 |
חבר על
|
שלחת לכתוב & בקוד השני
|
![]() |
![]() |
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
|
|