Главная Свежие Последние Лучшие Контактная информация  
 
 


Справочник языка » extends
Часто бывает нужно использовать классы с аналогичными переменными и функциями в другом существующем классе. На практике было бы удобно определять общий/generic класс, который можно было бы использовать во всех ваших проектах и адаптировать этот класс для нужд каждого конкретного проекта. Для облегчения этого процесса классы могут быть расширениями других классов. Расширяющий класс имеет все переменные и функции базового класса (это называется 'наследование/inheritance', хотя никто не умер...) и то, что вы добавили в расширенном определении. Из наследуемого класса невозможно ничего изъять, то есть разопределить любую существующую функцию или переменную. Расширяющий класс всегда зависит от единственного базового класса, то есть множественное наследование не поддерживается. Классы расширяются при помощи ключевого слова 'extends'.

class Named_Cart extends Cart
{
var $owner;

function set_owner ($name)
{
$this->owner = $name;
}
}


Здесь определён класс Named_Cart, который содержит все переменные и функции класса Cart плюс дополнительную переменную $owner и дополнительную функцию set_owner().
Вы создаёте named cart как обычно и можете устанавливать и получать владельца cart. Вы можете использовать функции как обычного cart, так и named carts:

$ncart = new Named_Cart; // создаём named cart
$ncart->set_owner("kris"); // именуем cart
print $ncart->owner; // печатаем имя владельца cart
$ncart->add_item("10", 1); // (функциональность, унаследованная от cart)


Это также называется отношениями "parent-child/родитель-потомок". Вы создаёте класс-родитель и используете extends для создания нового класса-потомка на базе класса-предка. Вы можете затем использовать этот новый класс-потомок как базовый для создания ещё одного нового класса.

Примечание: классы обязаны быть определены перед их использованием! Если вы хотите, чтобы класс Named_Cart расширял класс Cart, вы сначала должны определить класс Cart. Если вы хотите создать новый класс Yellow_named_cart на базе класса Named_Cart, вы должны сначала определить Named_Cart. Короче говоря: важен порядок определения классов.

Добавить в закладки:

 

теги: extends
 

  Еще статьи
Константы: Предопределённые константы swf 73
Сериализация объектов - объекты в сессиях 60
com_invoke 82
Оперции: Операции управления ошибками 78
Константы: Предопределённые константы xml 80
 


  Категории
Начнем 13
Справочник языка 89
Возможности 12
Функции 142
Расширение PHP 4.0 0
FAQ 0
 

  Теги
 

  Лучшее на сайте
Безопасность: Скрытие PHP 240
Что такое PHP? 209
foreach 186
Безопасность: Данные, отправляемые пользователем 178
Файл конфигурации 172
Безопасность: Безопасность баз данных 164
Операции: Строковые операции 159
Безопасность: Безопасность файловой системы 150
Безопасность: Обзор 142
Безопасность: CGI-двоичный 136
 

  Друзья сайта
непорочная мягкая мебель
унылая диета
Купить спортивное питание в Москве
Все только тут, для тюнинга
pidgin-im.ru
маркетинг
старые американские авто продажа
искусство книги
debark.ru
огнетушители
 

 
Использование материалов только при активной гиперссылке "http://iamcoder.net"
Copyright 2008 http://iamcoder.net Серия сайтов: "Стань умным!".