Язык программирования 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.