Объект – это структура, содержащая свойства – переменные и методы – функции. Класс – это описание переменных и методов объекта. Для использования объекта должен быть описан его класс, а потом создан собственно объект. Класс может наследовать свойства и методы другого класса. Тогда наследующий класс называется дочерним, а наследуемый – родительским. Описание класса состоит из ключевого слова “class”, имени класса, возможных ключевого слова “extends” и имени наследуемого класса, а также фигурных скобок, содержащих свойства и методы. Перед свойствами и методами стоят модификаторы доступа: “public” – свойство или метод доступны везде; “protected” – доступны в самом классе, дочерних и родительских классах; “private” – доступны только в самом классе. При объявлении свойств в классе им через знак равно “=” могут быть даны значения по умолчанию. При обращении в методах к свойствам и методам этого же класса в начале записывается “$this->”, а потом имя свойства без знака “$” или метода. Метод конструктор “__construct()” вызывается при создании объекта. Этот метод может содержать параметры. Метод деструктор “__destruct()” вызывается при уничтожении объекта. Создание объекта происходит через запись переменной объекта, знака равно “=’, ключевого слова “new” и имени класса с круглыми скобками, в которых могут быть значения для конструктора. При обращении к свойствам и методам объекта записывается имя объекта, знаки “->” и имя свойства или метода.
Пример 1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php class Avtomobil { public $cvet = "Белый"; public function Vivod() { echo "Цвет автомобиля: " . $this->cvet . "<br>"; } } $a = new Avtomobil(); $a->Vivod(); $a->cvet = "Чёрный"; $a->Vivod(); ?> |
Пример выводит:
Цвет автомобиля: Белый
Цвет автомобиля: Чёрный
В данном примере в начале описывается класс автомобиля “Avtomobil”. В нём есть свойство цвета “cvet” и метод вывода цвета автомобиля “Vivod”. Далее создаётся объект “$a” класса “Avtomobil” и делается вывод цвета по умолчанию через метод “Vivod”. Потом свойству цвета “cvet” задаётся значение “Чёрный” и опять делается вывод цвета, но уже нового.
Пример 2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
<?php class Figura { private $CvetNachalo = "Цвет фигуры: "; private $KoordinatiNachalo = "Координаты фигуры: "; protected $cvet = "Белый"; protected $koordinati = [[0, 0]]; protected function VivodCveta() { echo $this->CvetNachalo . $this->cvet . "<br>"; } protected function VivodKoordinat() { echo $this->KoordinatiNachalo; foreach($this->koordinati as $v) echo "(" . $v[0] . ", " . $v[1] . ") "; echo "<br>"; } } class Otrezok extends Figura { private $n; public function Vivod() { echo $this->n . "<br>"; $this->cvet = "Зелёный"; $this->koordinati = [[1, 3], [7, 5]]; $this->VivodCveta(); $this->VivodKoordinat(); echo "<br><br>"; } public function __construct($nazvanie) { $this->n = $nazvanie; } } class Treugolnik extends Figura { private $n; public function Vivod() { echo $this->n . "<br>"; $this->cvet = "Красный"; $this->koordinati = [[1, 2], [5, 3], [3, 5]]; $this->VivodCveta(); $this->VivodKoordinat(); echo "<br><br>"; } public function __construct($nazvanie) { $this->n = $nazvanie; } } $arr = [new Otrezok("Отрезок"), new Treugolnik("Треугольник")]; foreach($arr as $v) $v->Vivod(); ?> |
Пример выводит:
Отрезок
Цвет фигуры: Зелёный
Координаты фигуры: (1, 3) (7, 5)
Треугольник
Цвет фигуры: Красный
Координаты фигуры: (1, 2) (5, 3) (3, 5)
В данном примере описывается класс фигуры “Figura”. Он содержит свойства цвет “$cvet” и координаты “$koordinati”, а также методы вывод цвета “VivodCveta()” и вывод координат “VivodKoordinat()”. Потом описываются классы отрезка “Otrezok” и треугольника “Treugolnik”, наследующие класс фигуры “Figura” и содержащие метод “Vivod()”, который задаёт и выводит цвета и координаты отрезка и треугольника. В конце создаётся массив “$arr” с отрезком и треугольником и в цикле выводятся их цвета и координаты.