В PHP существует два основных способа объявления констант, каждый со своими особенностями.
define('CONSTANT_NAME', 'value', $case_insensitive = false);
Характеристики:
Пример:
define('SITE_NAME', 'My Website');
define('MAX_USERS', 100);
define('DEBUG_MODE', true);
const CONSTANT_NAME = 'value';
Характеристики:
Пример:
const DB_HOST = 'localhost';
const VERSION = '1.0.0';
const SETTINGS = ['theme' => 'dark'];
Критерий | define() | const |
---|---|---|
Область видимости | Глобальная | Только верхний уровень |
Case-sensitive | Опционально (3-й параметр) | Всегда |
Массивы | Только PHP 7.0+ | PHP 5.6+ |
Условное объявление | Да | Нет |
Производительность | Чуть медленнее | Чуть быстрее |
Выражения в значении | Всегда разрешены | Только PHP 7.0+ |
define() лучше когда:
const лучше когда:
class Config {
const VERSION = '1.0';
public static function getVersion() {
return self::VERSION;
}
}
const MAX_SIZE = 1024 * 1024;
const SETTINGS = [
'debug' => true,
'log_level' => 'error'
];
оба способа объявления констант имеют свои применения. define()
более гибкая, но const
предлагает более чистый синтаксис и лучшую производительность. В современном PHP (7.0+) предпочтение обычно отдается const
, кроме случаев когда требуется условное объявление или case-insensitive имена.