/ Wordpress / Создание класса PHP

Создание класса PHP

HIT

21.06.2019

1076

Учимся создавать фундаментальную для PHP вещь — класс.

Класс по сути это шаблон и фабрика по созданию объектов. Класс (class) состоит из следующих частей: Свойства (объектов), Конструктор (объектов), Методы (изменения свойств объектов).

Статья основана на материалах сайта myrusakov.ru

Создаем класс и свойства

Создаем файл под названием myclass.php и в нем начинаем прописывать класс.

class MyClass {
	public $x;
	public $y;
	const pi = 3.1415926;
}

Мы создали новый класс (MyClass) и 3 свойства (свойства иногда еще называют полями).

const pi — константа (pi). Перед название константы знак $ не ставиться.

Создаем конструктор и методы

class MyClass {
	public $x;
	public $y;
	const pi = 3.1415926;
	
	public function __construct($x, $y) {
		$this->x = $x;
		$this->y = $y;
		echo "Был создан объект с параметрами: $x и $y";
	}

	function sum() {
		$sum = $this->x + $this->y;
		return $sum;
	}

	function getPI() {
		return self::pi; 
	}	
}

Конструктор (__construct) — это функция которой мы можем передавать свойства, а также внутри нее делать все как в обычной функции.

$this->name — синтаксис обращения к свойству.

Добавлено два метода: сумма свойств и вывод константы pi. В методе суммы создаем переменную $sum и после возвращаем её (return). Во втором методе возвращаем константу (синтаксис при обращении к константе внутри класса self::name).

Применение класса

Создаем новый файл со следующим содержимым (естественно этот и предыдущий файлы должны быть заключены в <?php ?>):

require_once "myclass.php";
$myobj = new MyClass(15, 17);
echo $myobj->x;
echo $myobj->y;
echo MyClass::pi;
echo $myobj->sum();
echo $myobj->getPI();

require_once «myclass.php»; — подключаем класс (если класс прописан не в отдельном файле, а например в functions.php, то подключать его не нужно).

$myobj = new MyClass(15, 17); — создаем новый объект

echo $myobj->x; — выводим свойство объекта

echo MyClass::pi; — выводим константу

echo $myobj->sum(); — применяем и выводим метод

Наследование классов PHP

Мы можем создавать подклассы которые будут наследовать свойства, конструктор и методы родительского класса (Суперкласса).

class Auto extends Car — указание на родительский класс при создании подкласса.

Абстрактный класс (abstract)

Вид класса когда мы описываем не что-то конкретное, а неопределенное. Из абстрактного класса невозможно создать объекты, а только дочерние классы. Также в абстрактном классе можно создать абстрактные методы.

Модификаторы доступа PHP

  • public — элемент доступен за пределами класса
  • protected — элемент доступен в пределах класса и его наследниках
  • private — элемент доступен только в пределах данного класса

Эти модификаторы является являются одним из краеугольных камней ООП (Объектно-ориентированное программирование) — Инкапсулированием (наряду с Наследованием и Полиморфизмом).

Если в родительском классе мы сделали закрытое свойство protected $x; то в этом же классе мы можем создать методы get (получить) и set (изменить)

abstract class Car {
	protected $x;
	protected $y;
	public function __construct($x, $y) {
		$this->x = $x;
		$this->y = $y;
	}
	public function getX() {
		return $this->x;
	}
	public function getY() {
		return $this->y;
	}
	public function setX($x) {
		$this->x = $x;
	}
	public function setY($y) {
		$this->y = $y;
	}
}

т.е. получается так, что свойства закрыты, но есть public методы позволяющие их вызывать и изменять.

[site-socialshare]
  • Комментарии
  • Вложения

Добавить комментарий

Пока нет комментариев. Будь первым!

Создание класса PHP
Вертикальное многоуровневое меню
Рекомендации для васВертикальное многоуровневое менюOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.