Методы объектно-ориентированного программирования на PHP

Методы объектно-ориентированного программирования  на PHP

От автора: класс в первую очередь описывает некий функционал, то есть манипуляцию с определенными данными, соответственно создаваемый объект как раз может выполнить описанные действия. Поэтому в данной статье мы с Вами рассмотрим методы в ООП PHP, благодаря которым объекты взаимодействуют с собственными свойствами и выполняют поставленные задачи класса.

Итак, методы объектно-ориентированного программирования PHP – это обычные функции, которые описываются непосредственно в структуре класса.

<?php
class User {
 
 public $name;
 public $login;
 public $email;
 
 public function myFunc() {
  echo "Helo world!";
 } 
}

Как видно из примера выше, для создания метода, необходимо указать один из спецификаторов доступа, далее ключевое слово function и, конечно же, имя создаваемого метода. Как обычно между круглыми скобками указывается необходимое количество передаваемых аргументов, а между фигурными – тело, или код метода. Обратите внимание, что используемые спецификаторы – точно такие же, как и при объявлении свойств, а значит используемый public, указывает, что доступ к методу открыт извне.

Теперь давайте создадим объект вышеуказанного класса и посмотрим, как можно обратиться к методу myFunc(), то есть вызвать его на исполнение.


$user1 = new User();
$user1->myFunc();

Как Вы видите, обращение к методам, осуществляется точно так же как и к свойствам класса. То есть изначально указывается интересующий объект, далее два специальных символа “->”, а затем имя необходимого метода. При этом в круглых скобках, при необходимости, можно указать передаваемые параметры. Обратите внимание, круглые скобки – обязательны, при вызове метода, так как это сообщает интерпретатору языка PHP, что вызывается метод, а не свойство класса.

Фреймворк YII2. Быстрая разработка с современным PHP фреймворком

Узнай тонкости современной веб-разработки с помощью фреймворка YII2

Узнать подробнее

Теперь, скорее всего у Вас возник вопрос – как в методах манипулировать свойствами объекта, то есть, как получить к ним доступ, ведь, обратиться к свойству как обычной переменной не получится. Потому как, Вы знаете, что для работы со свойствами, да и объектами, необходим объект, как реализация конкретного класса. Поэтому, для того чтобы обратиться из кода метода, к свойству класса, или же его другому описанному методу – необходимо обратиться к зарезервированной переменной $this, за которой указать, уже знакомые нам символы “->” и конечно же имя интересующего элемента.

<?php
class User {
 
 public $name;
 public $login;
 public $email;
 
 public function myFunc() {
  echo $this->name;
 } 
} 


$user1 = new User();
$user1->name = "Ben";
$user1->myFunc();

Зарезервированная переменная $this – предоставляет доступ к объекту класса, к свойству или методу которого необходимо обратиться. В примере выше, метод myFunc(), отображает на экране значение свойства $name, поэтому так как, оно не определено по умолчанию, перед вызовом метода на исполнение, определим содержимое данного свойства. На экране, конечно же, мы увидим строку “Ben”. Таким образом, формируя структуру конкретного метода, мы можем даже не задумываться о тех объектах, которые будут создаваться на основе класса, так как переменная $this – это прямой указатель объекта.

Так же ни кто нам не мешает, из одного метода, обратиться к другому:

<?php
class User {
 
 public $name;
 public $login;
 public $email;
 
 public function myFunc() {
  return $this->name;
 }
 
 public function show() {
  echo myFunc(); 
 } 
} 


$user1 = new User();
$user1->name = "Ben";
$user1->myFunc();

В примере выше, метод myFunc(), возвращает значение свойства объекта $name, которое отображается на экран посредством метода show(). При этом доступ к методу myFunc(), осуществляется из кода метода show(), опять же используя $this.

Таким образом, теперь Вы знаете, зачем используются методы объектно-ориентированного подхода в PHP. Но обратите внимание на предыдущие примеры, согласитесь, не совсем удобно, каждый раз при создании, объекта, обращаться к его свойствам для определения необходимых значений. Хотелось бы, что бы при создании объекта, как бы автоматически определялись значения конкретных свойств, то есть определить начальное состояние объекта. И при необходимости мы можем данную возможность описать. Для этого можно использовать один из магических методов, под названием конструктор. Магическим методом в объектно-ориентированном программировании PHP, является – специальный метод в имени, которого присутствует префикс “__” и который вызывается при определенных условиях. Тема данной статьи, конечно же, не связана с методами подобного типа, но все же один из них мы с Вами рассмотрим.

Итак, метод конструктора – это метод, который вызывается при создании объекта класса и именуется _construct() (имя начинается с двойного подчеркивания). Таким образом, Вы можете использовать его для предварительной настройки состояния объекта. Поэтому примеры выше мы можем переписать следующим образом:

<?php
class User {
 
public $name;
public $login;
public $email;
 
public function __construct($name, $login, $email) {
$this->name = $name;
$this->login = $login;
$this->email = $email;
}
 
public function myFunc() {
return $this->name;
} 
public function show() {
echo myFunc(); 
} 
} 
$user1 = new User('Ben','ben','ben@email.ru');
$user1->myFunc();

В данном примере, мы вручную, при создании объекта $user1, не задаем значения для свойств – за нас это делает конструктор. При этом, создавая объект, после имени класса, в круглых скобках, мы передаем аргументы, для метода конструктора – имя, логин и почтовый ящик пользователя. Далее в конструкторе, используя знакомую нам переменную $this – мы обращаемся к необходимым свойствам объекта и определяем их значения. Таким образом, далее, можно обращаться к методу show(), для отображения информации о пользователе на экран. Собственно остальные магические методы ООП подхода на PHP мы с Вами будем рассматривать в следующих статьях данной серии.

И напоследок, что хотел бы вспомнить — это так называемые виртуальные методы ООП на PHP, так как данное понятие Вы можете встретить в различной литературе. Собственно – это методы, которые могут быть переопределены в классах наследниках, так что, по сути, функционал метода будет определен непосредственно во время исполнения. Опять же тему наследования мы с Вами еще не рассматривали и возможно Вам на данном этапе сложно понять, что и к чему. Поэтому для этого будет выделена отдельная статья. Но кратко хотел бы отметить, что в ООП, можно создать класс в качестве родителя и создать класс, который будет являться дочерним, по отношению к выше указанному. При этом дочерний класс будет наследовать родительский, а значит, получит доступ к его методам и свойствам. И в этом случае ни кто не запрещает ему переопределять некоторые методы родительского класса, то есть создавать методы, имя которых будет совпадать с именами методов родителя. То есть, как бы менять их код – функционал, а значит, при этом родительский метод будет считаться виртуальным.

На этом у меня все. Всего Вам доброго и удачного кодирования!!!

Фреймворк YII2. Быстрая разработка с современным PHP фреймворком

Узнай тонкости современной веб-разработки с помощью фреймворка YII2

Узнать подробнее
Самые свежие новости IT и веб-разработки на нашем Telegram-канале

Хотите изучить ООП PHP?

Прямо сейчас посмотрите курс по объектно-ориентированному программированию на PHP (ООП PHP)!

Смотреть курс

Метки:

Похожие статьи:

Комментарии Вконтакте:

Комментарии Facebook:

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree