Что такое константы? Чем const отличается от define()?

Ответ

Константы - неизменяемые значения, определяемые один раз.

const VERSION = '1.0';      // compile-time
define('API_KEY', 'abc');   // runtime

Различия:

  • const работает на этапе компиляции, нельзя использовать внутри if, циклов, функций
  • define() - runtime-функция, работает в любом месте
  • const можно использовать в классах, define() - нет
  • const поддерживает только скалярные выражения и массивы
  • define() может принимать результат функции

С PHP 8.3 появились типизированные константы классов:

class Config {
    const string VERSION = '2.0';
}
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.