09-04-07, 18:11 | # 1 |
חבר מתקדם
|
[מדריך] PHP - למתחיל בOOP. חלק ג' וד'.
החלטתי לכתוב סדרת מדריכים בתכנות מונחה אובייקטים בשפת PHP על מנת לקדם מתחילים בשפה ולעזור להם להתפתח.
[*] המדריך נכתב על ידי אמיר פרידמן. אין להעתיק או לפרסם מדריך זה בשום מקום ללא אישור ממני באימייל: INvisioN.net@gmail.com. המדריך נכתב בלשון זכר אך מיועד גם למתוקות שקוראות מדריך זה =] לבסוף היה לי המון זמן פנוי גם היום, אז החלטתי לכתוב את חלק ג' וד' היום D: מומלץ לקרוא את חלק א' וב' לפני שתקראו את החלקים הבאים: http://www.hosts.co.il/forums/showthread.php?t=43115 חלק ג'. - הגבלת גישה למתודות ומאפיינים. כאשר אתם יוצרים מחלקה, אתם יכולים לגשת למתודות ולמאפיינים שלה בקלות, אומנם לפעמים תרצו להגביל גישה מחוץ למחלקה למאפיין או למתודה כלשהי. ניקח לדוגמא את המחלקה הבאה: PHP קוד:
PHP קוד:
אנחנו עושים דבר זה על ידי שימוש במאפייני הגישה הבאים:
כעת נגדיר את המאפיין size כפרטי על ידי שימוש במשפט - "private" בצורה כזאת: PHP קוד:
PHP קוד:
כעת נשאלת שאלה? האם מתודות יכולות להיות גם פרטיות או מוגנות? כן. עושים זאת בצורה הזאת: PHP קוד:
במידה ונשתמש בprotected, נוכל להשתמש במאפיינים ובתמתודות רק מתוך המחלקה הנוחכית ומהמחלקה הנגזרת ממנה ( הורשה ) -> על זה ננלמד בפרק ה'. אז כאן מסתיים לו חלק ג', כעת נעבור לחלק הבא. חלק ד'. - בנאים. הבנאי הוא מתודה בשם __construct, וכאשר יוצרים את האובייקט אפשר להעביר נתונים לבנאי, והסקריפט שיהיה בתוך המתודה של הבנאי ירוץ עם הגדרת האובייקט. ( זאת אומרת שלא נצטרך לקרוא לו על מנת שהוא יפעל, הוא יפעל אוטומטית ) בואו ניזכר באיך מגדירים אובייקט רגיל: PHP קוד:
PHP קוד:
כעת אנחנו נגדיר אובייקט למחלקה, אך כאשר אנחנו עובדים עם בנאים אנחנו צריכים להעביר נתונים לבנאי... במקרה שלנו את גודל הפונט ($size). אנחנו נעשה את זה בצורה הזאת: PHP קוד:
במידה וסיימתם לעבוד עם אובייקט מסויים או שאתם רוצים למחוק אותו, תוכלו להשתמש במשפט - "unset" בצורה כזאת: PHP קוד:
מתודות ה__destruct תפעל רק כאשר כל אזכור של המחלקה נעשה או שכבר האובייקט הושמד ( על ידי שימוש ב - "unset" ). לאחר שdestruct יפעל הוא ישמיד את המחלקה ( בדיוק כמו unset ). PHP קוד:
מקווה שהחלק הזה של המדריך היה ברור והבנתם הכל = ] בשבוע הבא נלמד על מתודות סטטיות ועל הורשה =] אשמח לענות על כל שאלה בהודעה פרטית או במסנג'ר: INvisioN.net@gmail.com, או באימייל ( בדיוק כמו המסן ). בהצלחה P:
__________________
|
09-04-07, 18:35 | # 2 |
חבר וותיק
|
אני חושב שיש לך טעות קטנה כי לפי מה שאני יודע פונקצייה בנאי קובעים עם אותו השם של המחלקה ולא עם השם שאתה אמרת זה נכון?או שזה אני טועה?
|
09-04-07, 19:02 | # 3 |
חבר מתקדם
|
לא זאת לא טעות, זה אפשרי ליצור מתודה בשם של המחלקה והיא כן תפעל כאשר נגדיר אובייקט אבל לא תוכל להעביר אליה נתונים...
זה הכל =]
__________________
|
09-04-07, 19:04 | # 4 |
חבר וותיק
|
אבל בכל האתרים של לימוד PHP כתוב ככה אתה יכול להסביר את זה?
|
09-04-07, 19:17 | # 5 | |
משתמש - היכל התהילה
|
ציטוט:
PHP קוד:
__________________
קו ישר, כי אפשר גם אחרת |
|
09-04-07, 19:50 | # 6 |
הוסטסניון
|
כמו שכבר ציינו פונקציה בנאית היא פונקציה בשם המחלקה, יש כמה סוגים כגון:
Default Constructor - פונקציה אשר לא מקבלת פרמטרים וקובעת פרמטרים שונים. Constructor מפורש - מקבל את כל הפרמטרים הקיימים במחלקה ומעדכן אותם. אך ב-PHP ניתן גם באמצעות איך שכותב המדריך ציין.
__________________
מפתח ומתחזק אתרים. |
09-04-07, 20:05 | # 7 | |
חבר מתקדם
|
ציטוט:
ואממ אשמח אם תקרא לי אמיר במקום "כותב המדריך" XD =]
__________________
|
|
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
Tags |
מדריך למתקדמים, מדריך oop, מדריך php |
כלים לאשכול | |
תצורת הצגה | |
|
|