Язык программирования PHP | страница 51




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


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


В 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 . "
" .

> $this->description .

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

> echo $art;

> }

>}

>?>


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


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


>

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

> var $title;

>?>

>

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

> function show_article(){

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

> }

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

>?>


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


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