Константы в PHP
🔹 Как определить константы в PHP
📌 Константа – это переменная, значение которой нельзя изменить после объявления.
PHP поддерживает два способа создания констант:
1️⃣ define() – традиционный способ
2️⃣ const – более современный способ
1️⃣ Создание констант с define()
Функция define() создаёт глобальную константу.
define("SITE_NAME", "MyWebsite");
echo SITE_NAME; // Выведет: MyWebsite
✅ Объяснение:
- Имя константы пишется БОЛЬШИМИ БУКВАМИ (рекомендуется).
- Не используем
$ перед константой (в отличие от переменных). - Можно использовать в любом месте кода (даже внутри функций).
2️⃣ Создание констант с const
Другой способ объявления константы – с const.
const SITE_URL = "<https://example.com>";
echo SITE_URL; // <https://example.com>
📌 Разница между define() и const:
| Метод | Где можно использовать? | Когда значение вычисляется? |
define("NAME", "value") | В любом месте кода | Во время выполнения |
const NAME = "value" | Только в глобальной области или в классе | Во время компиляции |
🔹 Пример, где define() сработает, а const – нет:
if (true) {
define("DYNAMIC_CONST", "Работает!");
// const STATIC_CONST = "Ошибка!"; ❌
}
3️⃣ Константы внутри классов (const)
Константы можно использовать внутри классов.
class Config {
const DB_HOST = "localhost";
const DB_USER = "root";
}
echo Config::DB_HOST; // localhost
4️⃣ Предопределённые константы PHP
PHP имеет встроенные константы, например:
echo PHP_VERSION; // Версия PHP, например: 8.2.1
echo PHP_OS; // Операционная система сервера
echo __FILE__; // Путь к текущему файлу
echo __DIR__; // Директория текущего файла
5️⃣ Константы с массивами (PHP 7+)
В PHP 7+ можно использовать массивы в константах.
define("COLORS", ["красный", "зелёный", "синий"]);
echo COLORS[1]; // зелёный
📌 Итог
| Способ | Подходит для | Можно ли менять? | Где доступен? |
define("NAME", "value") | Глобальных констант | ❌ Нет | Везде |
const NAME = "value" | Классов и глобальных констант | ❌ Нет | Только в глобальной области |
const в классе | Констант внутри класса | ❌ Нет | В классе |
✅ Мини-задания
1️⃣ Создайте константу SITE_NAME и выведите её.
2️⃣ Создайте массив цветов в константе и выведите один из них.
3️⃣ Определите класс Config с константой DB_NAME, затем выведите её.
4️⃣ Выведите предопределённую константу PHP_VERSION.