Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

Библиотека :: Компьютеры и Программирование :: Котеров Д. В. - Самоучитель PHP 4
<<-[Весь Текст]
Страница: из 287
 <<-
 
— ведь мы просто используем его как контейнер для хранения свойств. 
Поэтому давайте поговорим о более существенном отличии — методах класса. 

Часть V. Приемы программирования на PHP 456 
Методы 
Основная идея ООП — инкапсуляция — базируется на объединении данных (свойств) 
объекта с функциями, которые эти данные обрабатывают. В самом деле, почему это 
мы привыкли разграничивать информацию и методы ее обработки? Разве, в конце 
концов, эти методы сами не являются информацией? Зачем же разделять нераздели- 
мые сущности?.. 
Фактически, свойства хранят в себе состояние объекта в данный момент времени, 
тогда как методы (функции обработки) являются чем-то вроде механизма посылки 
запроса экземпляру класса (объекту). Например, в классе таблицы MySQL, которую 
мы с вами вскоре напишем, может быть довольно большой набор методов. Самый 
простой из них — Drop(), заставляющий таблицу очистить и удалить себя из базы 
данных. Вызов этого метода из программы происходит примерно так: 
$Obj->Drop(); // таблица $Obj удаляет сама себя! 
Конечно, у методов, как и у обычных функций, могут быть параметры. 
К примеру, метод Add() того же класса (добавление новой записи в таблицу) 
прини- 
мает только один параметр — ассоциативный массив, содержащий данные, а метод 
Select() (получить все записи, удовлетворяющие запросу) использует три парамет- 

ра — логическое выражение запроса, максимальное количество получаемых записей 
и правила сортировки результата. Он возвращает массив с результирующими запи- 
сями. 
Класс таблицы MySQL 
Пожалуй, я слишком далеко заглянул в будущее. Вернемся назад к основам. Чтобы 
определить метод внутри класса, используется следующий синтаксис: 
сlass MyClass { 
. . . 
function Method(параметры) 
{ . . . 
} 
. . . 
} 
Давайте будем потихоньку набрасывать план нашего класса MySQL-таблицы. Во 
первых, зададимся вопросом: зачем нам вообще это нужно? Почему бы не пользо- 
ваться обычными функциями для работы с MySQL? Ответ не вполне очевиден, по- 
этому оставим его на потом. А пока будем считать, что такой класс нам необходим 
(а 
он действительно необходим, т. к. значительно упрощает работу с базой данных). 
Во-вторых, сформулируем правило: обращаться к какой-то таблице MySQL только 
посредством нашего класса, а точнее, объекта этого класса, связанного с 
таблицей. 
Как же его связать? Очевидно, объект должен содержать имя таблицы, к которой он 


Глава 31. Объектно-ориентированное программирование на PHP 457 
"привязан". Так как в программе могут использоваться одновременно несколько 
таб- 
лиц и несколько объектов, то, наверное, логично это самое имя хранить в виде 
свой- 
ства. 
Что бы еще хотелось знать об объекте-таблице? Конечно, имена и типы ее полей. 
По- 
местим их в свойство-массив. Наконец, в процессе работы наверняка иногда будут 
возникать ошибки. Чтобы как-то сигнализировать о них, предлагаю в класс-таблицу 

ввести еще одно свойство — Error. Оно будет равно нулю, если предыдущая опера- 
ция (например, добавление записи) прошла успешно, и тексту ошибки — в против- 
ном случае. 
Вот что у нас пока получилось: 
class MysqlTable { 
var $TableName; // Имя таблицы в базе данных 
var 
 
<<-[Весь Текст]
Страница: из 287
 <<-