מחלקה
היא
אוסף
של
משתנים
ופונקציות
שעובדות
עם
משתנים
אלו
.
מחלקה
מוגדרת
תוך
שימוש
בתחביר
הבא
:
בדוגמא
הנ"
ל
,
הוגדרה
מחלקה
ששמה
Cart
,
שמורכבת
ממערך
המשוייך
לפריטים
שבתוך
בסל
(Cart)
,
ומשני
פונקציות
להוספה
(add
)
ולהסרה
(remove
)
של
פריטים
מתוך
העגלה
.
זהירות
|
המדריך
הבא
מתאים
ל
PHP4
!
.
המילה
stdClass
היא
מילה
שמורה
הנמצאת
בשימוש
פנימי
על
ידי
ZEND
.
לכן
,
אין
להשתמש
במילה
stdClass
ב
PHP
.
שם
הפונקציה
__sleep
ושם
הפונקציה
__wakeup
בעלות
שימוש
מיוחד
ב
-
php
.
אתב
לא
יכול
להשתמש
בשם
הזהה
לאחת
משתי
הפונקציות
הנ"
ל
במחלקה
כלשהי
אלא
אם
אתה
רוצה
להשתמש
בהן
לאפשרות
המיוחדת
(שתפורט
בהמשך
)
שלה
הן
נועדו
.
ראה
בהמשך
המדריך
למידע
נוסף
.
כל
פונקציות
ה
PHP
המופלאות
(
בהמשך
יפורט
מידע
נוסף
בנושא
)
מתחילות
עם
__
.
מומלץ
מאוד
לא
לקרוא
לשמות
פונקציה
ב
PHP
עם
שם
המתחיל
ב
__
אלא
אם
אתה
רוצה
לתעד
אותן
כפונקציות
"קסומות
"
.
|
הערה
:
ב
PHP
4
,
איתחול
משתני
מחלקה
שהוגדרו
בעזרת
var
אפשרי
רק
עם
קבועים
.
כדי
לאתחל
משתנים
,
שלא
על
ידי
ערכי
קבועים
,
אתה
צריך
להשתמש
בפונקציה
שנקראת
אוטומטית
על
ידי
PHP
כאשר
נוצר
אובייקט
חדש
של
הפונקציה
.
פונקציה
כזאת
נקראת
"
פונקציה
בנאית
"
(constructor
)
(ראה
למטה
)
.
מחלקות
הן
תבניות
,
כלומר
,
הן
הכנה
ליצירת
משתנים
אמיתיים
(
האובייקטים
)
יוצרים
את
המשתנים
מהסוג
המבוקש
תוך
שימוש
באופרטור
new
.
הדוגמא
הנ"
ל
יצרה
את
האובייקטים
$cart
ו
$another_cart
,
שניהם
אובייקטים
שנוצרו
מהמחלקה
Cart
.
הפונקציה
add_item(
)
של
האובייקט
-
$cart
נקראת
על
מנת
להוסיף
פריט
אחד
של
חפץ
מס
'
10
לתוך
העגלה
.
3
פריטים
חפץ
מס
'
0815
נוספו
לאובייקט
$another_cart
.
גם
ל
$cart
וגם
ל
$another_cart
,
יש
את
הפונקציות
add_item(
)
,
remove_item(
)
ומשתנה
של
פריטים
($items
)
.
אלו
הם
פונקציות
ומשתנים
נפרדים
.
אפשר
לחשוב
על
אובייקטים
כדומים
לספריות
וקבצים
במערכת
קבצים
.
בתוך
מערכת
קבצים
יכולים
להיות
לך
שני
קבצי
README.TXT
שונים
לחלוטין
,
כל
עוד
הם
יימצאו
בספריה
אחרת
.
ממש
כמו
במערכות
קבצים
,
כשצריך
להלקיד
את
המסלול
המלא
על
מנת
להפעיל
קובץ
כלשהו
,
אם
לא
נמצאים
בספריה
שלו
,
יש
צורך
לתת
את
השם
המלא
של
הפונקציה
אותה
רוצים
להפיל
,
במונחים
של
php
:
"רמת
הגובה
"
של
האובייקט
נקבע
בעזרת
שמות
שהוגדרו
,
ומהפריד
בין
שמות
אלו
-
.
לכן
,
המילים
$cart
-
items
ו
$another_cart
-
items
הן
שמות
של
שתי
משתנים
אחרים
.
יש
לשים
לב
לעובדה
שהמשתנה
נקרא
$cart
-
items
,
ולא
$cart
-
$items
,
וזאת
בשל
,
שלשם
משתנה
ב
PHP
יש
רק
סימן
$
אחד
.
עם
הגדרת
המחלקה
,
אין
אפשרות
לדעת
אילו
שמות
אובייקטים
ייוצרו
בתוכנית
לאותה
מחלקה
:
בזמן
שהמחלקה
Cart
נכתבה
,
לא
היה
ידוע
שייוצר
האובייקט
$cart
או
האובייקט
$another_cart
מאוחר
יותר
.
לכן
,
בלתי
אפשרי
לכתוב
$cart
-
items
בתוך
המחלקה
Cart
עצמה
.
במקום
זאת
,
כדי
שאפשר
יהיה
לפנות
בתוך
לתוך
הפונקציות
והמשתנים
של
האוייקט
בתוך
המחלקה
עצמה
,
אפשר
להשתמש
ב
בפסאודו
-
משתנה
(
משתנה
מדומה
)
$this
שיכול
להחשב
כ
'של
עצמי
'
או
'אובייקט
נוכחי'
.
לפיכך
,
'$this
-
items[$artnr
]
+=
$num
'
יכול
להקרא
כ
'הוסף
$num
למונה
$artnr
של
מערל
החפצים
של
עצמי
'
או
'הוסף
$num
למונה
$artnr
של
מערך
החפצים
שנמצא
בתוך
האובייקט
הנוכחי
'
.