Классы и объекты в PHP: конструкторы и константы. Часть 3

Классы и объекты в PHP: конструкторы и константы. Часть 3

Если вы не умеете пользоваться конструкторами в классах PHP, то упускает большой потенциал в программировании. Давайте устраним этот пробел.

Конструкторы часто нужны для предварительной обработки свойств, например, при выгрузке из БД.

Конструктор любого класса, начиная с версии PHP 5 имеет следующий вид: function __construct() {}

__construct() - это и есть конструктор, а точнее метод в PHP, который запустится автоматически при создании экземпляра класса (объекта). Он всегда "называется" __construct() и должен находиться внутри класса. В него можно передавать данные объекта. Отличие конструктора от обычного метода - конструктор не может возвращать значения.

С теорией разобрались. Теперь перейдем к практике. В предыдущем уроке я использовал класс Books, давайте теперь модифицируем его в Users.

<?php
class Users {
public $id = "ID юзера";
public $name = "Имя";
public $email = "Email";
function __construct($id, $name, $email) {
$this->id = $id;
$this->name = $name;
$this->email = $email;
}
function printUsers() { echo echo "ID пользователя: $this->id. Имя: $this->name и Email: $this->email <br>"; }
}
?>

В классе Users мы сначала задаем три свойства со значениями по умолчанию. Затем инициализируем конструктор с 3-мя входными данными ($id, $name, $email - они не соответствуют нашим свойствам заданным до этого метода). Внутри конструктора мы будем переназначать свойства на те, которые будет передавать объект. Также здесь есть функция printUsers(), которая выведет на печать все данные с класса.

Теперь, если мы созданим экземпляр класса, то он должен передавать значения: номера юзера, его имя и почту:

$Users1 = new Users(1,'Андрей','demo1@mail.ru');
$Users2 = new Users(2,'Сергей','demo2@mail.ru');
$Users1->printUsers(); //ID пользователя: 1. Имя: Андрей и Email: demo1@mail.ru
$Users2->printUsers(); //ID пользователя: 2. Имя: Сергей и Email: demo2@mail.ru

Из этого примера видно, что мы создали два класса и передали в них значения, а затем вывели на печать нужные нам данные за счет printUsers().

Не обязательно использовать __construct() именно так. Важно понять, что этот метод позволяет оперировать с данными, которые в него передает экземпляр объекта. Теперь предлагаю обсудить вторую тему, которая вам может пригодиться:

Константы в классах

Обычная константа, например вида: define("PAGE", "Глобальная "); - отлично работает внутри класса и его методов. Константы нельзя изменять - только назначать и считывать. Такую константу легко использовать внутри класса, например так: public $message = PAGE;

Что касается констант для классов, то они имеют следующий вид: const CLASSCONST = 'классовая';

Область видимости констант, по умолчанию, public. Обратиться к константам внутри класса можно с помощью: self:: Например, внутри метода: function sayHi() { return self::CLASSCONST; }

Чтобы получить доступ к значению константы класса в объекте можно использовать:

class MyClass3 {
const CLASSCONST = 'классовая';
function sayHi() { return self::CLASSCONST; }
}

$book = new MyClass3();
echo $book::CLASSCONST; //обращаемся из объекта
echo MyClass3::CLASSCONST; //обращаемся из класса

Проверка на существование константы внутри класса
if(defined("MyClass3::CLASSCONST")) { echo " Константа существует"; }

В следующем уроке мы изучим методы наследования классов.

| | Классы и объекты в PHP: конструкторы и константы. Часть 3 | Если вы не умеете пользоваться конструкторами в классах PHP, то упускает большой потенциал в программировании. Давайте устраним этот пробел. Констр | http://blogprogram.ru/wp-content/uploads/2017/06/691-131x131.jpg

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

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


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