Класове и обекти (PHP 4)
PHP Manual

extends

Много често имаме нужда от класове с променливи и функции подобни на тези от друг съществуващ клас. Всъщност е добра практика да дефинираме общ клас, който да може да се използва във всичките проекти и да адаптираме този клас за специфичните нужди на конкретния проект. За да се улесни това, класовете могат да наследяват други класове. Производният клас има всички променливи и функции на базовия клас (това се нарича 'наследство', въпреки факта, че никой не е умрял), както и тези които са допълнително дефинирани. Не е възможно да изваждате променливи или функции от производен клас, т.е. да премахвате вече дефинирани функции и променливи. Производният клас винаги наследява от един базов клас, т.е. множествено наследяване не се поддържа. Наследяването на класове се осъществява с ключовата дума 'extends' (разширява).

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

В горния пример е дефиниран клас Named_Cart, който притежава всички променливи и функции от Cart, плюс допълнителната променлива $owner и допълнителната функция set_owner(). Може да създадете именувана пазарска количка по нормалния начин и да установите или да върнете като резултат името на собственика й. Можете да използвате и функциите на нормалната пазарска количка върху именуваната такава:

<?php
$ncart 
= new Named_Cart;    // Създаване на именувана пазарска количка
$ncart->set_owner("kris");  // Задаване на име на пазарската количка
print $ncart->owner;        // извежда името на собственика на пазарската количка
$ncart->add_item("10"1);  // (наследена функционалност от Cart)
?>

Това също така се нарича отношение родител-наследник. Създавате родителски клас и използвате extends, за да създадете нов клас базиран на родителския: дъщерен клас. Можете да използвате този дъщерен клас, за да дефинират друг клас базиран на него.

Забележка: Класовете трябва да бъдат дефинирани преди да бъдат използвани! Ако искате клас Named_Cart да наследи клас Cart, трябва първо да дефинирате клас Cart. Ако искате да създадете друг клас наречен Yellow_named_cart, наследяващ класа Named_Cart, ще трябва първо да дефинирате Named_Cart. Накратко: редът на дефиниране на класовете е важен.


Класове и обекти (PHP 4)
PHP Manual