Forum und email

הורשות

לעיים קרובות, זקוקים למחלקות עם עם משתנים ופונקציות דומות למשתנים ומחלקות בפונקציות אחרות. למעשה, זה נוהג טוב להגדיר מחלקה כללית שיכולה לשמש אותך בכל הפרוייקטים שלך ולהתאים את מחלקה זאת לצרכי כל אחד מהפרוייקטים ספציפת. לסייע בזאת, מחלקות יכולות להיות הרחבות של מחלקות אחרות. למחלקה שמרחיבה או היורשת יש את כל המשתנים והפונקציות של המחלקה הבסיסית (זה נקרא 'ירושה' למרות העובדה שאף אחד לא מת) וכן את מה שאתה מוסיף לה (פונקציות ומשתנים נוספים) זה בלתי אפשרי לבטל הגדרה של משתנה או פונקציה כלשהי במחלקה. מחלקה מרחיבה, נשענת לעולם על בסיס של מחלקה אחת בלבד,וזאת בגלל, שהורשה מרובה לא נתמכת. מחלקות מורחבות תוך שימוש במילה השמורה 'extends'.

class Named_Cart extends Cart
{
    var $owner;
  
    function set_owner ($name)
    {
        $this->owner = $name;
    }
}

בדוגמא הנ"ל הוגדרה מחלקה Named_Cart שיש לה את כל הפונקציות והמשתנים של Cart בנוסף למשתנה $owner ולפנוקציה נוספת בשם set_owner(). יוצרים את העדלה בדרך הרגילה, אלא שאפר גם לקבוע ערכים ולקרוא את הערכים של בעל העגלה. עדיין אפשר להשתמש פונקציות הרגילות של העגלה.

$ncart = new Named_Cart;    // יצירת אובייקט 
$ncart->set_owner("kris");  // הכנסת שם של בעלים לאותה עגלה
print $ncart->owner;        // הצגה של ערך הבעלים של העגלה
$ncart->add_item("10", 1);  // שימוש בפונקציה שהורשנו מתוך cart