PHP – это один из самых наиболее широко используемых языков программирования. У него большое сообщество преданных разработчиков, и на PHP построено много популярных фреймворков. Одними из самых ярких примеров можно назвать Magento и WordPress. Если вы хотите стать успешным программистом – этот язык подойдет вам для изучения. А наши уроки по PHP могут вам в этом помочь.
В предыдущем уроке мы рассмотрели Классы PHP и немного введения в ООП. Мы сделали обзор экземпляров класса, ключевого слова $this
, рассмотрели наследование и видимость классов. Однако это еще не все. Есть еще информация, которая поможет вам лучше понять PHP. И в этом уроке вы ее получите.
Допустим, вам нужно, чтобы какой-то код выполнялся автоматически всякий раз, когда вы создаете новый объект. Метод-конструктор PHP __construct()
– это именно то, что вы ищете. Когда вы включаете этот метод в один из ваших классов, он будет автоматически вызываться всякий раз, когда этот класс используется для создания экземпляра нового объекта.
Благодаря этой возможности метод __construct()
часто используется разработчиками PHP для вызова всего того, что может понадобиться объекту перед его использованием. Метод также поддерживает параметры, и если они вам нужны, вы можете включить их в конструктор. Это позволит объекту принимать значения при его создании.
Учтите, что вы не можете использовать несколько методов __construct()
с разным набором параметров. Если вы хотите, чтобы какой-то объект вел себя по-разному, например, в зависимости от параметров, вы должны обрабатывать эту логику внутри одного и того же метода __construct()
.
А теперь рассмотрим простой пример. Создадим новый класс под названием Chelovek
. У него будут некоторые открытые свойства и метод конструктора. Метод __construct()
примет эти свойства в качестве параметров, инициализирует их и выведет простое сообщение. Затем мы будем использовать этот класс для создания экземпляра нового объекта с именем $ivan
. Как вы увидите, сообщение с указанным методом __construct()
сразу появится.
<?php // класс Chelovek с базовым примером метода __construct() class Chelovek { public $vozrast; public $imya; public function __construct($imya, $vozrast) { $this->vozrast = $vozrast; $this->imya = $imya; echo "Создан новый экземпляр класса Chelovek"; } } $ivan = new Chelovek("Иван", 25); ?>
Представьте, что у вас есть свойство, которое должно быть по умолчанию для класса Chelovek
. Допустим, что это возраст совершеннолетия. Если не указано другое – будет приниматься это свойство по умолчанию. Как это может выглядеть в PHP?
<?php class Chelovek { public $vozrast; // в методе __construct устанавливаем возраст по умолчанию public function __construct( $vozrast = 18 ) { $this->vozrast = $vozrast; } } $stepan = new Chelovek; // у Степана будет дефолтный возраст – 18 $ivan = new Chelovek( 25 ); // а здесь мы переписываем дефолтное значение ?>
Помимо конструктора класса, существует также деструктор класса. Это деструкторный метод __destruct()
. Этот метод вызывается автоматически при уничтожении объекта. Вы также можете явно вызвать метод деструктора. Для этого вы можете использовать функцию unset()
. Хорошее применение деструкторам – выполнение определенных задач по завершении жизненного цикла объекта, таких как освобождение ресурсов, запись файлов лога, закрытие соединения с базой данных и т.д.
<?php // класс Chelovek с базовым примером метода __destruct() class Chelovek { public function __destruct() { echo "Экземпляр класса Chelovek был уничтожен"; } } $ivan = new Chelovek("Иван", 25); // или unset($ivan); ?>
Выбор мастера для ремонта и перетяжки мебели — задача, которая требует вдумчивого подхода. Ведь от…
Выбор идеального хостинга под свой сайт может быть довольно запутанным делом, особенно когда существует так…
Чтобы избегать ошибок, нужно набираться опыта; чтобы набираться опыта, надо делать ошибки Лоуренс Питер
Краткое определение Черного SEO Черное СЕО (или Черная оптимизация) — это любая практика, целью которой…
Получение водительских прав категории C открывает двери к профессиональной деятельности, связанной с управлением грузовыми автомобилями.…