Сегодня тема будет маленькая, но важная в изучении ООП.
Тема - конструкторы класса в PHP.
Начнем.
_________________________________________________________________________
Если у вас возникли вопросы - пишите в теме. Надеюсь, отвечу :)
Если вы нашли у меня ошибку - пишите в ЛС, чтобы не засорять тему - поправлю.
Если вы хотите дополнить меня - пишите в теме, либо в ЛС - добавлю, оставлю credits.
Тема - конструкторы класса в PHP.
Начнем.
Классы, в которых объявлен метод-конструктор, будут вызывать этот метод при каждом создании нового объекта, так что это может оказаться полезным, например, для инициализации какого-либо состояния объекта перед его использованием. Говоря проще, конструкторы - специальные функции, которые вызываются при создании экземпляра класса.
Объявить конструктор класса someClass можно так:
Код:
class someClass {
public $param1; // Необязательно создавать переменную,
private $param2; // Здесь просто для примера
function __construct($param1, $param2) { // Конструктор работает также, как и обычная функция, и может принимать параметры
$this->param1 = $param1; // И устанавливать значения переменных изнутри класса
$this->param2 = $param2;
}
function get2() {
return $this->param2; // Функция для получения значения private-переменной
}
}
Чтобы задать параметры вызова конструктора класса, необходимо их передать в скобках, также как и в функциях - вот на примере класса someClass (выше):
Чтобы вызвать конструктор родительского класса (об этом в следующем уроке) изнутри текущего, необходимо использовать
Код:
$someObj = new someClass("param1", 25); // Создали объект, передав параметры в конструктор
echo $someClass->get2(); // Выведет 25, так как функция get2 выводит значение $param2, которое мы установили с помощью конструктора
parent::__construct()
Деструктор класса работает почти так же, как и конструктор, только вызывается при уничтожении объекта или завершении скрипта.
Код:
<?php
class someClass {
function __construct() {
}
function __destruct() {
echo "Деструктор вызван";
exit();
}
}
$someObj = new someClass();
unset($someObj); // Скрипт выведет надпись и завершит работу - выполнится содержимое деструктора
echo "Эта надпись уже не выведется"; // Потому что скрипт уже завершил работу
Если у вас возникли вопросы - пишите в теме. Надеюсь, отвечу :)
Если вы нашли у меня ошибку - пишите в ЛС, чтобы не засорять тему - поправлю.
Если вы хотите дополнить меня - пишите в теме, либо в ЛС - добавлю, оставлю credits.
Последнее редактирование: