|
הרשם | ![]() |
שאלות ותשובות | ![]() |
רשימת חברים | ![]() |
לוח שנה | ![]() |
הודעות מהיום | ![]() |
חיפוש | ![]() |
|
![]() |
![]() |
|
כלים לאשכול | תצורת הצגה |
![]() |
# 1 |
חבר בקהילה
|
משהו מוזר בהורשה בPHP
שלום לכולם,
ניסיתי לעשות איזו בדיקה קטנה בPHP בנוגע להורשות ומסתבר שמשהו מתפקשש ואני לא מבין למה. עשיתי מחלקה עם איזה סתם משתמש וכשאני עושה מחלקה שמקבלת בהורשה מהמחלקה הקודמת, המחלקה החדשה לא מדפיסה לי את המשתמש של המחלקה המקורית. להלן הקוד: PHP קוד:
תודה רבה, רועי. |
![]() |
![]() |
# 2 |
משתמש - היכל התהילה
|
כי זה לא באותו מופע.
הורשה לא מחברת בין כל המופעים של המחלקות, רק מורישה את התכונות של המחלקה. זה בדיוק כמו ליצור שני מופעים של אותה מחלקה ולצפות שערכים שהוזנו כקלט במופע אחד יהיו זמינים במופע אחר. אם תגדיר את המשתנה כstatic יש מצב שזה יעבוד,גם זה לא בטוח אם הוא יהיה זמין במחלקה יורשת.
__________________
קו ישר, כי אפשר גם אחרת |
![]() |
![]() |
# 3 |
חבר בקהילה
|
אוקי, אז אם אין לי אפשרות לגשת למשתנים מהמחלקה הקודמת - אז למה להוריש?
|
![]() |
![]() |
# 4 |
משתמש - היכל התהילה
|
המטרה של הורשה זה לא לגשת למופעים אחרים אלא למחזר את הקוד של המחלקה הקודמת.
PHP קוד:
__________________
קו ישר, כי אפשר גם אחרת |
![]() |
![]() |
# 5 |
חבר בקהילה
|
לא התכוונתי למה מבחינת תכנות, הרי למה לך לרשת דברים אם אתה לא יכול למחזר אותם.
נגיד ומתי שהו לפני ההורשה הגדירו ערך חדש למשתנה מחלקה והמחלקה המורישה לא תוכל להסתמך ע"פ הערך החדש כי היא לא יכולה לגשת לשם אז יש פה בעיה מסוימת בקוד. הרעיון המקורי היה שנגיד שישנה מחלקה מרכזית ואז רוצים לעשות עוד מחלקה אז לא לעשות global למשתנה שאליו הגדרת את המחלקה(אותו משתנה שמוצמד למילה new) אלא פשוט לעשות extends. בכול מקרה, לא משנה. תודה על העזרה בכל מקרה. |
![]() |
![]() |
# 6 |
אין כמו ב127.0.0.1
|
תשתמש בsuper(), או בPHP - פשוט תקרא שוב לconstructor. תכתוב $this->test() בתוך הקונסטרטור של המחלקה היורשת.
|
![]() |
![]() |
# 7 |
חבר בקהילה
|
כן, אבל אם שינית את אחד הערכים של המשתנים במחלקה הראשית המחלקה המורישה לא תקבל אותם, למרות שאתה מבצע את ההורשה אחרי שינוי הערך.
|
![]() |
![]() |
# 8 |
משתמש - היכל התהילה
|
לא. אתה טועה לחלוטין. פיספסת את כל היסודות של תכנות מונחה עצמים.
בקצרה - יש לך מחלקות שמייצגות טיפוסי נתונים (test וsecond). יש לך מופעים שהם אובייקטים של המחלקה ($bellboy ו$bellgirl). אין קשר בין המופעים השונים של המחלקה, והם אינם משפיעים זה על זה. ההורשה היא לא בין מופעים אלא בין מחלקות. אם אתה רוצה אתה יכול להיכנס לבלוג שלי, פרסמתי סדרת פוסטים על תכנות מונחה עצמים נכנסתי שם לכל נושא לעומק. http://www.xn----0hcb6acyq1epc.com/%...3%D7%A7%D7%A1/ |
![]() |
![]() |
# 9 |
חבר בקהילה
|
אוקי, בוא לא נקרא לזה הורשה. אין דרך בPHP לתקשר בין מחלוקות. ז"א - לבצע אינטראקציה בין מחלוקות? ואני לא מתכוון בדרך עקיפה עם משתנים שמועברים בעקיפין.
|
![]() |
![]() |
# 10 |
משתמש - היכל התהילה
|
מה הכוונה לתקשר בין מחלקות?
אם אתה מכיר שפה שבה הדבר שאתה מדבר עליו קיים אתה מוזמן לרשום כאן דוגמת קוד, שנבין במה מדובר. |
![]() |
![]() |
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
|
|