Константы классов PHP
Константы по своей сути являются свойствами, значения которых нельзя изменять. Неизменяемые свойства нужны для того, чтобы хранить какие-то данные, которые являются постоянными и не должны быть случайно изменены.
Что такое константа класса PHP?
Константы класса PHP могут быть объявлены в пределах одного класса. При объявлении или при обращении к константам, в отличие от переменных, к ним не используется символ $
. Область видимости констант по умолчанию public
, хотя в определении могут использоваться другие модификаторы.
Константы класса полезны, когда вам нужно объявить некоторые постоянные данные (которые не изменяются) внутри класса.
Значением константы должно быть неизменяемым выражением, а не переменной, свойством или вызовом функции.
Константы класса чувствительны к регистру. Обычно имя константы указывается в верхнем регистре.
Чтобы создать константу, ее нужно объявить через ключевое слово const
и обязательно сразу же задать ее значение:
<?php class Test { /*Задаем константу:*/ const CONSTANT = 'значение константы'; } ?>
Как получить доступ к константе класса?
Мы можем получить доступ к константе извне класса, используя имя класса, за которым следует оператор разрешения области видимости (::
), за которым следует имя константы:
Пример
Попробуй сам »<?php
class Greet {
// Объявление константы класса
const LEAV_MESS = "Welcome to wm-school.ru";
}
// Доступ к константе класса
echo Greet::LEAV_MESS;
?>
Результат выполнения кода:
Или мы можем получить доступ к константе изнутри класса, используя ключевое слово self
, за которым следует оператор разрешения области видимости (::
), за которым следует имя константы:
Пример
Попробуй сам »<?php
class Greet {
const LEAV_MESS = "Welcome to wm-school.ru";
public function greeting() {
echo self::LEAV_MESS;
}
}
$greet = new Greet();
$greet->greeting();
?>
Результат выполнения кода:
Константа класса как выражение
В этом примере константе класса присваивается выражение:
Пример
Попробуй сам »<?php
const X = 22;
const Y=7;
class Square {
const PI=X/Y;
var $side=5;
function area(){
$area=$this->side**2*self::PI;
return $area;
}
}
$s1=new Square();
echo "PI=". Square::PI . "<br>";
echo "area=" . $s1->area();
?>
Результат выполнения кода:
area=78.571428571429