::

זהירות

הקטע הבא תקף ל PHP 4 בלבד .

לעיתים זה שימושי לבצע ייחוס למשתנים ופונקציות במחלקת הבסיס או להשתמש בייחוס לפונקציות אשר נמצאות במחלקות שעדיין לא יצרנו להן מופע ( עדיין לא מומש להן אובייקט ) . האופרטור : : משמש לביצוע משימה זאת .

 
class

 
A

 
{

 
function

 
example(

 
)

 
    {

 
echo

 
"I

 
am

 
the

 
original

 
function

 
A::example()

 
.

 
br

 
\n"

 
;

 
    }

 
}

 
class

 
B

 
extends

 
A

 
{

 
function

 
example(

 
)

 
    {

 
echo

 
"I

 
am

 
the

 
redefined

 
function

 
B::example()

 
.

 
br

 
\n"

 
;

 
A::example()

 
;

 
    }

 
}

 
/

 
/

 
אין

 
אובייקט

 
למחלקה

 
A

 
.

 
/

 
/

 
מה

 
שהולך

 
להיות

 
מודפס

 
לסמסך

 
זה

 
:

 
/

 
/

 
I

 
am

 
the

 
original

 
function

 
A::example()

 
.

 
br

 
A::example()

 
;

 
/

 
/

 
יצירת

 
אובייקט

 
(שהוא

 
"מופע"

 
)

 
למחלקה

 
B

 
.

 
$b

 
=

 
new

 
B

 
;

 
/

 
/

 
מה

 
שיודפס

 
כתוצאה

 
מכך

 
זה

 
:

 
/

 
/

 
I

 
am

 
the

 
redefined

 
function

 
B::example()

 
.

 
br

 
/

 
/

 
I

 
am

 
the

 
original

 
function

 
A::example()

 
.

 
br

 
$b

 
-

 
example()

 
;



הדוגמא שלמעלה קוראת לפונקציה example( ) שבתוך המחלקה A , אבל אין אובייקט למחלקה A , ולפיכך לא ניתן לכתוב $a - example( ) או משהו דומא . במקום זאת קראנו לפונקציה example( ) כ 'פונקצית מחלקה ' , כלומר , היא משמשת כפונקציה של המחלקה עצמה , ללא אוביקט כלשהו של אותה מחלקה .

יש פונקציות במחלקה , אבל אין משתנים במחלקה . למעשה , אין אובייקט כלשהו בזמן בו נקרא הפונקציה לכן , פונקציות של המחלקה לא יכולות להשתמש במשתנים של האובייקט ( אבל הן יכולות להשתמש במשתנים גלובאליים ומקומיים ) , והן לא יכולות להשתמש ב - $this כלל .

בדוגמא שמעל , המחלקה B מגדירה מחדש את הפונקציה example( ) . ההגדרה המקורית בתוך המחלקה A "מוצללת " ולא מתקיימת למעשה , עד אשר מייחסים ספציפית למימוש של example( ) שבתוך המחלקה A תוך שימוש באופרטור : : . הכתיבה של A::example( ) עושה זאת (למעשה , רצוי לכתוב : parent::example() , כפי שיודגם בחלק הבא ) .

בהקשר זה , נוצר אובייקט וייתכן שיהיו לו משתני אובייקט . לכן , כשמשתמשים במשתנים מתוך פונקצית האובייקט , אפשר להשתמש ב $this ובמשתני המחלק .