АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP или фреймворки. Сегодня последний день для записи! Жми!
⊗ppOpBsCC 32 of 107 menu
Долгожданный Бесплатный курс по выкладке сайта на хостинг. МЫ УЖЕ НАЧАЛИ! Присоединяйтесь к нам!

Константы классов в ООП на PHP

Сейчас мы с вами разберем константы классов. Константы по сути являются свойствами, значения которых нельзя изменить. Неизменяемые свойства нужны для того, чтобы хранить какие-то значения, которые являются постоянными и не должны быть случайно изменены.

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

<?php class Test { const constant = 'test'; // задаем константу } ?>

Общепринято имена констант писать большими буквами, то есть не constant, а CONSTANT. Это делается для того, чтобы визуально легко было отличать константы в коде.

Давайте поправим наш класс:

<?php class Test { // Задаем константу: const CONSTANT = 'test'; } ?>

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

Это значит, что константы класса задаются один раз для всего класса, а не отдельно для каждого объекта этого класса.

Поэтому обращение к константам происходит почти так же, как и для статических свойств: пишем имя класса, два двоеточия и название константы без доллара перед именем:

<?php echo Test::CONSTANT; // выведет 'test' ?>

Как уже упоминалось выше, значения констант можно прочитывать, но не записывать. Попытка что-то записать в нее выдаст ошибку:

<?php Test::CONSTANT = 'test'; // выдаст ошибку ?>

Обращение к константам внутри класса

Внутри класса также можно обратится к константе через ::self, вот так:

<?php class Test { const CONSTANT = 'test'; function getConstant() { return self::CONSTANT; } } ?>

Воспользуемся нашим методом:

<?php $test = new Test; echo $test->getConstant(); // выведет 'test' ?>

Применение

Давайте сделаем класс Circle, с помощью которого можно будет найти площадь круга и длину окружности. Для работы с кругом нам понадобится число Пи, равное 3.14. Логично будет для хранения этого числа использовать константу, чтобы случайно где-нибудь в коде наше число Пи вдруг не поменялось.

Вот частичная реализация нашего класса:

<?php class Circle { const PI = 3.14; // запишем число ПИ в константу private $radius; // радиус круга public function __construct($radius) { $this->radius = $radius; } // Найдем площадь: public function getSquare() { // Пи умножить на квадрат радиуса } // Найдем длину окружности: public function getCircuit() { // 2 Пи умножить на радиус } } ?>

Реализуйте предложенный класс Circle самостоятельно.

С помощью написанного класса Circle найдите длину окружности и площадь круга с радиусом 10.