Объектно Ориентированный PHP

Форум для тех кто начинает осваивать язык php.
Аватара пользователя
Slash
Администратор
Сообщения: 2125
Зарегистрирован: Сб авг 11, 2012 7:39 am
Поблагодарили: 75 раз

Объектно Ориентированный PHP

Сообщение Slash » Пт авг 19, 2016 12:25 pm

Рано или поздно программист начинает задумываться о ООП, чтобы самостоятельно разбираться в нем. На то у него свои причины, быть может потому что все популярные движки написаны на ООП, или только тот, с которым ему предстоит работать, возможно просто расширить свои знания в области программировании или что то еще. В ООП не больше возможностей, чем в процедурном, в смысле все что можно сделать на ООП, то можно и в процедурном, однако в ООП есть свои преимущества. Большая часть программистов отдает свое предпочтение именно ООП.

Чтобы начать писать на ООП, надо "познакомиться" с такими "вещами", как класс, объект и метод. Сейчас попытаюсь объяснить, что это значит:
  • Класс - Определяет функции и типы данных, что находятся в объектах классах.
  • Объект - Своего рода переменная, которая содержит в себе данные и функции. Такая переменная создается через класс.
  • Методы - Функция, созданная в классе и используемые для объектов этого класса.
Как создать класс
Пример, как создать класс. Назовем наш класс common:

Код: Выделить всё

class common
{
    # Содержимое класса
} 
Как создавать объект
После того, как у нас будет готовый класс, мы можем приступать к работе с этим классом, для этого нам нужно создать объект, делается это при помощи оператора new, вот так:

Код: Выделить всё

$common = new common();
Теперь переменная $common и есть объект.

Двигаемся дальше. Давайте создадим класс common, с функцией addition, которая будет складывать два числа, затем создадим объект и при помощи этого объекта обратимся к методу. И так, сам класс с методом addition (с областью видимостью public (об этом чуть позже)):

Код: Выделить всё

class common
{
    public function addition($a, $b)
    {
        return $a + $b;
    }
}
Создаем объект и обращаемся к методу:

Код: Выделить всё

$common = new common();            # Создаем объект
$result = $common->addition(7, 2); # Обращаемся к методу addition           
Теперь переменная $result содержит результат сложения двух чисел, в данном примере - 9.

Теперь поговорим о области видимости свойств и методов класса, которая устанавливается при помощи ключевых слов public, protected и private. Данные слова отвечают за то от куда можно будет обратиться к свойству или методу. И так:
  • public - Доступно ото всюду. Обратиться можно внутри и за пределами класса.
  • protected - Доступно внутри класса и в дочерних классах.
  • private - Доступно только внутри класса.

Реклама
Аватара пользователя
Slash
Администратор
Сообщения: 2125
Зарегистрирован: Сб авг 11, 2012 7:39 am
Поблагодарили: 75 раз

Re: Объектно Ориентированный PHP

Сообщение Slash » Пн авг 22, 2016 10:45 am

Внутри классов обращаться к свойству класса, надо начиная с оператора: $this, знак доллара у свойства не ставиться. Пример:

Код: Выделить всё

$this->variable;
Обращаться к методу класса, так же надо с оператором $this:

Код: Выделить всё

$this->addition(7, 2);
Один класс может наследовать другой класс, то есть вызывая один класс, мы можем работать с двумя делается это при помощи ключевого слова extends, после названия класса, пишем название наследуемого класса, вот так:

Код: Выделить всё

class second extends first
Чтобы стало более понятно, что такое наследование, приведу ещё пример с двумя классами:

Код: Выделить всё

class first
{
    public $value = 'DANFA';

    public function test()
    {
        echo $this->value;
    }
}

class second extends first
{
    # Содержимое класса
}

$class = new second();
$class->test(); 
Из кода видно, что "вызван" класс с именем second, а значение переменной выводим из класса с именем first, так как мы наследовали класс.

Ответить Пред. темаСлед. тема

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость