Ответ
В PHP константы объявляются в разных контекстах в зависимости от их назначения и области видимости.
-
Глобальные константы: Объявляются с помощью
define()или ключевого словаconstвне класса.define()работает во время выполнения,const— на этапе компиляции.// config/constants.php define('APP_ENV', 'production'); // Можно объявить в условии if const APP_NAME = 'MyApplication'; // Должна быть объявлена в глобальной области видимости const MAX_LOGIN_ATTEMPTS = 5; -
Константы класса: Объявляются внутри класса с помощью
const. Они относятся к классу, а не к его экземплярам (объектам).class DatabaseConfig { const DRIVER = 'mysql'; const HOST = '127.0.0.1'; const PORT = 3306; public static function getDsn(): string { return sprintf( '%s:host=%s;port=%d', self::DRIVER, self::HOST, self::PORT ); } } // Обращение: DatabaseConfig::HOST -
Константы интерфейса: Аналогично классам, используются для определения контрактов.
interface HttpStatus { const OK = 200; const NOT_FOUND = 404; const INTERNAL_ERROR = 500; }
Лучшие практики:
- Используйте классовые константы для значений, логически связанных с определенным классом (настройки, коды состояний).
- Глобальные константы (
define) удобны для конфигурации среды, которая может определяться динамически. - Имена констант принято писать в
UPPER_SNAKE_CASE. - Начиная с PHP 7.1, константы класса могут иметь модификатор видимости (
public,private,protected).