Учебник по основам PHP. PHPBeginner


Объекты и классы


Описываемые в разделе функции позволяют получать информацию о классах и экземплярах объектов. Можно узнать, к какому классу принадлежит объект, его свойства и методы, а также их наследственную принадлежность.

В этом примере сначала определяется базовый класс, а затем его наследник.

<?php // Пример 1 Файл с определениями классов: classes. inc class ИсточникС вета { // базовый класс var $>правляемость; //неизменное логическое значение var $Яркость; // конструктор function ИсточникСвета ( $управляемость. $яркость="неяркий" ) { $this->Управляемость = $управляемость; $this->flpKOCTb = $яркость: } function 15_управляемо() { return $1гп5->Улравляемость. } function whatjipKOCTbО { return $this->Яркость; } } // конец определения класса ИсточникСвета // Расширение базового класса class Лампочка extends Источник Света { var $Включена = FALSE. // конструктор function Ла»мпочка() ( $this->ИсточникСвета( TRUE, "яркий" ): // Лампочка - это ИсточникСвета (управляемый, "яркий") } function включить() { $this->Включена = TRUE. } function 15_вклочена () { return $this->Включена; } } // конец определения класса Лампочка ?>

Следующий сценарий создает экземпляры объектов на основе определенных классов, а затем выводит основную информацию, которую можно узнать о классах и объектах средствами РНР 4.

<php // Пример 2 Файл test_scnpt.uhp include "classes.тс": // определения функций function print_vars($obj) ( $arr = get_object_vars($obj); while (list($prop. $val) = each($arr)) echo "\t - свойство '$ргор' = \"$val\"\n": i function pnnt_methods($cbj) { $arr - get_class_methods(qet_class($obj)): foreach (Jarr as Smethod) echo "\t - метод: $rnethodition"; } function class_parentagp($obj. Sclass) { global $$obj: if (is_subclass_of($$obj Sclass)), { erho "\пОбьркт $obj принадлежит к классу: " get_class($$obj); echo " поцкпасса $class\n"; } else { echo "Объект $obj не принадлежит к подклассу $class\n"; } i / конец определения функций еспо "Доступные сценарий '$PHP_SELF' классы\n": iclss - get_Jeclared_classesf > forear.h ($c.isb as $cis name) echo "\t- *cls_namei)\n": // инициализируем 2 объекта $солние = new ИсточникСвета СTRUE."очень яркий"); $эл_лампочка * new Лампочка () // выясняем информацию об объектах echo "\пКЛАСС объекта 'солнце'. ' " get_class($coлнце) '"\n". еспо "КЛАСС обьекта 'эл_лампочка' ' .get сlаss(эл_ ланлочка); echo "'. Родительский Класс '" get parent сlass(эл_лампочка).°)\гГ; // проследить свойства объекта 'солнце' echo "\n Свойства объекта 'солнце' \п"; print \'аг5($солнце). // и свойства объекта 'эл_лампочка echo "\n Методы объекта 'эл_лампочка': \n": pnnt_methocls(эл_лампочка): echo "\n Наследственность:\n": сlass _раrentаgе ("эл_лампочка", "Лампочка"): сlаss _раrentаgе ("эл_лампочка". "ИсточникСвета"):




Начало  Назад  Вперед



Книжный магазин