В ООП нет ничего сложного. Фактически это отражение нашего мира. Например: есть объект Вася Пупкин, он относится к классу Человек, имеет некоторые свойства: рост – 180 см, вес – 85 кг, цвет глаз – зелёный; может выполнять различные действия: ходить, сидеть, ковырять в носу и т.д. Так же и в нашей программе (скрипте) мы можем создать объект определённого класса, назначить ему свойства и производить с ним различные действия. То есть класс – это тип, который мы описываем один раз. Объект – это переменная этого типа. Объектов можно создать сколько угодно. Поле класса (свойство) – переменная, для значения свойства объекта. Метод – любая функция созданная нами и описанная внутри класса. То есть это действие, которое может выполнить объект.
В PHP описание объекта начинается служебным словом class, далее следует название класса:
class Chelovek {}
Внутри фигурных скобок перечисляются свойства и методы класса. Перед свойством должно стоять служебное слово var:
class Chelovek {
// Свойства
var $rost;
var $ves;
var $cvet_glaz;
// Методы
function __construct () {...} // Коструктор класса, о нём далее...
function Hodit () {...}
function Sidet () {...}
}
Создание нового объекта:
$Vasya_Pupkin = new Chelovek();
Где new –служебное слово, Chelovek – название класса.
Поздравляю вас товарищи с рождением нового человека Васи Пупкина! ))
Теперь давайте определим какой же он этот Вася.
$Vasya_Pupkin->rost = 50; // Пока что Васечка маленький, но он обязательно будет большим и сильным ))
$Vasya_Pupkin->ves = 4; // Да, наш Вася богатырь!
$Vasya_Pupkin->cvet_glaz = 'зелёный';
Надеюсь синтаксис здесь всем понятен. Идём дальше.
Стоп! Как дальше? Нет, так не бывает! Не может сначала родиться непонятно что, а затем обрести форму и цвет глаз. Что это врачи его что ли растянули, накачали и в добавок глаза покрасили? Вася уже при рождении должен иметь определённые свойства. Тут нам на помощь придёт конструктор.
Конструктор – это функция, которая выполняется при создании объекта.
class Chelovek {
var $rost;
var $ves;
var $cvet_glaz;
function __construct ($r, $v, $c) {
$this->rost = $r;
$this->ves = $v;
$this->cvet_glaz = $c;
}
function Hodit () {...}
function Sidet () {...}
}
$Vasya_Pupkin = new Chelovek(50, 4, 'зелёный');
Обратите внимание на переменную $this. С её помощью мы обращаемся к свойствам объекта внутри методов класса. Помните об этом!
На самом деле не обязательно при создании объекта всем его свойствам присваивать определённые значения. Можно отложить это до нужного момента и воспользоваться кодом:
$Vasya_Pupkin->rost = 180;
Пришло время поговорить о методах. Что делать, если нам необходимо неоднократно выводить на экран всю информацию о нашем Васе? Писать каждый раз
echo $Vasya_Pupkin->rost;
echo $Vasya_Pupkin->ves;
echo $Vasya_Pupkin->cvet_glaz;
надоест. А если у нас будет не три свойства, а сто?! Давайте облегчим себе задачу и опишем метод Info:
class Chelovek {
var $rost;
var $ves;
var $cvet_glaz;
function __construct ($r, $v, $c) {
$this->rost = $r;
$this->ves = $v;
$this->cvet_glaz = $c;
}
function Hodit () {...}
function Sidet () {...}
function Info () {
echo $Vasya_Pupkin->rost;
echo $Vasya_Pupkin->ves;
echo $Vasya_Pupkin->cvet_glaz;
}
}
$Vasya_Pupkin = new Chelovek(50, 4, 'зелёный');
$Vasya_Pupkin->Info();
Теперь в любом месте программы пишем $Vasya_Pupkin->Info; и мы в шоколаде ;)
Вот и всё! Ничего сложного, правда? Конечно же это только самые основы. В этой статья я не затронул всех прелестей ООП, таких как наследование и полиморфизм. О них речь пойдёт в следующих статьях, если конечно за эту вы меня в комментариях тухлыми яйцами не закидаете ))
Exit;
P.S.: в описании класса намеренно сделана ошибка. Если Вы внимательно прочитали статью, то без труда должны её найти. Кто первый найдёт, тому печенька ))