Конструкторы и деструкторы классов в PHP. Какова их основная роль?

конструкторы и деструкторы классов в php. какова их основная роль?

Конструкторы классов

Зачастую сразу после создания экземпляра класса необходимо выполнить ряд действий по его инициализации. Например, у вас есть класс Solder (рус. Солдат). Вновь созданному солдату нужно присвоить имя, звание и номер жетона. Есть много способов реализовать такую возможность, но правильнее всего использовать конструктор.

Конструктором в PHP называется специальный метод класса, который выполняется автоматически при создании объекта. Выражение определения конструктора в общем виде записывается как «public function __construct(/* параметры конструктора */) {/* программный код */}». Имя метода «__construct» является обязательным. Оно должно начинаться с двух символов подчеркивания.

Если конструктор определяет параметры, то их передача осуществляется при создании объекта. Выглядит это следующим образом «$переменная = new ИмяКласса(/* значения параметров */);».

//Определяем класс "Cолдат"
class Soldier
{
    //Свойства: имя, звание и номер жетона
    protected $solderName, $solderRank, $solderToken;

    //Создаем конструктор класса, который
    //принимает три параметра
    public function __construct($name, $rank, $token)
    {
        $this->solderToken = $token;
        $this->solderName = $name;
        $this->solderRank = $rank;
    }


    //Метод вывода информации в браузер
    public function reportStatus()
    {
        echo "<h4>Статус солдата</h4>";
        echo "Имя: {$this->solderName} <br>";
        echo "Звание: {$this->solderRank} <br>";
        echo "Жетон: {$this->solderToken}<br>";
    }
}

//Создаем экземпляр класса
$Solder = new Soldier('Иван', 'Рядовой', 1500);
$Solder->reportStatus();
/*
* Результат:
* Статус солдата
* Имя: Иван
* Звание: Рядовой
* Жетон: 1500
*/

Важно
Конструкторы классов в PHP должны иметь модификатор доступа public. Иное не имеет смысла. Если назначить модификатор protected, то при попытке создать объект произойдет фатальная ошибка.

Деструкторы классов

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

Сборка мусора — это встроенный в интерпретатор функционал. Его основной задачей является автоматическое удаление переменных и объектов, которые больше не будут использоваться. Это может произойти в процессе выполнения скрипта или в самом его конце. Поэтому деструкторы будут вызываться в любом случае.

Определение деструктора класса в общем виде записывается как «public function __destruct() {/* программный код */}». Метод должен иметь имя «__destruct» и модификатор доступа public.

//Объявляем класс "Подключение к базе данных"
class DatabaseConnection
{
    //При создании объекта выводим информацию
    public function __construct()
    {
        echo 'Подключение к базе данных установлено<br>';
    }

    //Выводит это сообщение при удалении объекта
    public function __destruct()
    {
        echo 'Произошло автоматическое отключение...';
    }
}

//Создаем экземпляр класса
$Connection = new DatabaseConnection();
/*
* Результат:
* Подключение к базе данных установлено
* Произошло автоматическое отключение...
*/

Отличительной особенностью деструктора является то, что он не может принимать никаких параметров.

Последние публикации