Волшебные константы

PHP предоставляет большой список предопределенных констант для каждого выполняемого скрипта. Многие из этих констант определяются различными модулями и будут присутствовать только в том случае, если эти модули доступны в результате динамической загрузки или в результате статической сборки.

Есть девять магических констант, которые меняют свое значение в зависимости от контекста, в котором они используются. Например, значение __LINE__ зависит от строки в скрипте, на которой эта константа указана. Все магические константы разрешаются во время компиляции, в отличие от обычных констант, которые разрешаются во время выполнения. Специальные константы нечувствительны к регистру и их список приведен ниже:

  • __LINE__ - Текущий номер строки в файле;
  • __FILE__ - Полный путь и имя текущего файла с развернутыми симлинками. Если используется внутри подключаемого файла, то возвращается имя данного файла;
  • __DIR__ - Директория файла. Если используется внутри подключаемого файла, то возвращается директория этого файла. Это эквивалентно вызову dirname(__FILE__). Возвращаемое имя директории не оканчивается на слеш, за исключением корневой директории;
  • __FUNCTION__ - Имя функции или {closure} в случае анонимной функции;
  • __CLASS__ - Имя класса. Это имя содержит название пространства имен, в котором класс был объявлен (например, Foo\Bar);
  • __TRAIT__ - Имя трейта. Это имя содержит название пространства имен, в котором трейт был объявлен (например, Foo\Bar);
  • __METHOD__ - Имя метода класса;
  • __NAMESPACE__ - Имя текущего пространства имен;
  • ClassName::class - Полное имя класса (с указанием пространства имен);

Предопределенные константы

Объявленные в ядре константы. Эти константы объявляются ядром PHP и охватывают PHP, Zend engine и SAPI-модули.

  • PHP_VERSION (string) - Текущая версия PHP в виде строки в формате "major.minor.release[extra]";
  • PHP_MAJOR_VERSION (integer) - Текущая "основная" (major) версия PHP в виде целого числа (например, int(5) для версии "5.2.7-extra");
  • PHP_MINOR_VERSION (integer) - Текущая "промежуточная" (minor) версия PHP в виде целого числа (например, int(2) для версии "5.2.7-extra");
  • PHP_RELEASE_VERSION (integer) - Текущая "релиз"-версия (release) PHP в виде целого числа (например, int(7) для версии "5.2.7-extra");
  • PHP_VERSION_ID (integer) - Текущая версия PHP в виде целого числа, её удобно использовать при сравнениях версий (например, int(50207) для версии "5.2.7-extra");
  • PHP_EXTRA_VERSION (string) - Текущая "экстра"-версия PHP в виде строки (например, '-extra' для версии "5.2.7-extra"). Обычно используется в различных дистрибутивах для индикации версий пакетов;
  • PHP_ZTS (integer) - Zend Thread Safety;
  • PHP_DEBUG (integer);
  • PHP_MAXPATHLEN (integer) - Максимальная длина файловых имен (включая путь), поддерживаемая данной сборкой PHP;
  • PHP_OS (string) - Операционная система, под которую собирался PHP;
  • PHP_OS_FAMILY (string) - Семейство операционных систем, для которых собран PHP;
  • PHP_SAPI (string) - API сервера (Server API) данной сборки PHP.;
  • PHP_EOL (string) - Корректный символ конца строки, используемый на данной платформе;
  • PHP_INT_MAX (integer) - Максимальное целое число, поддерживаемое данной сборкой PHP. Обычно это int(2147483647) в 32-битных системах и int(9223372036854775807) в 64-битных;
  • PHP_INT_MIN (integer) - Минимальное целое число, поддерживаемое данной сборкой PHP. Обычно это int(-2147483648) в 32-битных системах и int(-9223372036854775808) в 64-битных;
  • PHP_INT_SIZE (integer) - Размер целого числа в байтах в текущей сборке PHP;
  • PHP_FLOAT_DIG (integer) - Количество десятичных цифр, которые могут быть округлены в float и обратно без потери точности;
  • PHP_FLOAT_EPSILON (float) - Наименьшее положительное число x, такое, что x + 1.0 != 1.0;
  • PHP_FLOAT_MIN (float) - Наименьшее возможное положительное число типа float;
  • PHP_FLOAT_MAX (float) - Максимальное возможное число типа float;
  • DEFAULT_INCLUDE_PATH (string);
  • PEAR_INSTALL_DIR (string);
  • PEAR_EXTENSION_DIR (string);
  • PHP_EXTENSION_DIR (string);
  • PHP_PREFIX (string) - Значение опции "--prefix", указанной при запуске configure;
  • PHP_BINDIR (string) - Указывает путь установки бинарных файлов;
  • PHP_BINARY (string) - Указывает путь к исполняемым файлам PHP во время выполнения скрипта;
  • PHP_MANDIR (string) - Указывает путь установки страниц документации man;
  • PHP_LIBDIR (string);
  • PHP_DATADIR (string);
  • PHP_SYSCONFDIR (string);
  • PHP_LOCALSTATEDIR (string);
  • PHP_CONFIG_FILE_PATH (string);
  • PHP_CONFIG_FILE_SCAN_DIR (string);
  • PHP_SHLIB_SUFFIX (string) - Суффикс, используемый для динамически линкуемых библиотек, таких как "so" (для большинства Unix-систем) или "dll" (Windows);
  • PHP_FD_SETSIZE (string) - Максимальное количество файловых дескрипторов для системных вызовов;
  • E_ERROR (integer);
  • E_WARNING (integer);
  • E_PARSE (integer);
  • E_NOTICE (integer);
  • E_CORE_ERROR (integer);
  • E_CORE_WARNING (integer);
  • E_COMPILE_ERROR (integer);
  • E_COMPILE_WARNING (integer);
  • E_USER_ERROR (integer);
  • E_USER_WARNING (integer);
  • E_USER_NOTICE (integer);
  • E_RECOVERABLE_ERROR (integer);
  • E_DEPRECATED (integer);
  • E_USER_DEPRECATED (integer);
  • E_ALL (integer);
  • E_STRICT (integer);
  • __COMPILER_HALT_OFFSET__ (integer);
  • TRUE (boolean);
  • FALSE (boolean);
  • NULL (null);
  • PHP_WINDOWS_EVENT_CTRL_C (integer);
  • PHP_WINDOWS_EVENT_CTRL_BREAK (integer);