Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
сети эвм / Язык PHP.doc
Скачиваний:
84
Добавлен:
17.03.2015
Размер:
2.29 Mб
Скачать

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

Понятия класса и объекта. Определение и использование классов. Понятие расширения класса. Конструкторы. Оператор :: Базовый класс и функция parent. Пример – автоматическая генерация по желанию пользователя представителей классов статей или личностей, а также их отображения на странице браузера.

В этой лекции мы рассмотрим объектную модель, предлагаемую языком PHP. Будут представлены понятия классаиобъекта, способы их задания и использования, способы расширенияклассов,конструкторыклассов, механизмынаследованияи т.п. Кроме того, мы затронем некоторые нововведения, касающиеся объектной модели, появившиеся в PHP5.

В качестве примера решим задачу автоматической генерации по желанию пользователя представителей классовстатей или личностей, а также их отображения на странице браузера.

Классы и объекты

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

В PHP классопределяется с помощью следующего синтаксиса:

class Имя_класса{

var $имя_свойства;

/*список свойств*/

function имя_метода( ){

/* определение метода */

}

/*список методов*/

}

Имена свойствобъектовклассаобъявляются с помощью ключевого словаvar,методы, применимые кобъектамиданногокласса, описываются функциями. Внутри определенияклассаможно использовать ключевое словоthisдля обращения к текущему представителюкласса.

Например, нам нужно создать класс, описывающий категорию статей. У каждой статьи имеются такиесвойства, как название, автор и краткое содержание. Какие действия мы хотим совершать со статьями? Возможно, нам понадобится задавать значения перечисленнымсвойствамистатьи, отображать статью в браузере. Тогда определение этогоклассаможет выглядеть следующим образом:

<?

class Articles { // Создаем класс Статей

var $title;

var $author;

var $description;

// метод, который присваивает значения

// атрибутам класса

function make_article($t, $a, $d){

$this->title = $t;

$this->author = $a;

$this->description = $d;

}

//метод для отображения экземпляров класса

function show_article(){

$art = $this->title . "<br>" .

$this->description .

"<br>Автор: " . $this->author;

echo $art;

}

}

?>

Итак, для описания физических объектовтипа «статья» мы создаликлассс именемArticles, состоящий из трех переменных, содержащих характеристики статьи, и двух функций для создания конкретной статьи и для ее отображения.

Как известно, работая с PHP, можно периодически переключаться в режим HTML. В этом случае программа состоит из нескольких кусков (блоков) кода. Определение классанельзя разносить по разным блокам php-кода и тем более по разным файлам. То есть если написать:

<?php

class Articles { // Начало описания класса

var $title;

?>

<?php

// продолжение описания класса

function show_article(){

// содержание метода

}

} // конец описания класса

?>

то программа не будет работать корректно.

Несколько замечаний по поводу имен классов. Имяклассадолжно удовлетворять правилам именованияобъектовв языке PHP, но есть ряд имен, которые зарезервированы разработчиками для своих целей. В первую очередь это имена, начинающиеся с символа подчеркивания «_». Для созданияклассови функций нельзя использовать такие имена. Кроме того, зарезервировано имяstdClass, поскольку оно используется внутри движка PHP.

Соседние файлы в папке сети эвм