Глава 10. Предопределенные константы и их использование
В PHP определено несколько констант и имеется механизм для определения других констант во время выполнения программы. Следует также отметить тот факт, что сами константы очень схожи с переменными, но они определяются с помощью функции define(), и после этого им уже нельзя присвоить какое-либо другое значение. В этой главе вы сможете познакомиться более детально со всеми аспектами констант и изучить предопределенные константы и их использование.
Список предопределенных констант (доступны всегда):
имя файла, который анализируется в данный момент скрипта. При использовании во включенном (included) или необходимом (required) файле дается имя включенного файла, но не имя родительского.
номер строки в текущем файле скрипта, анализируемой в данный момент. При использовании во включенном (included) или необходимом (required) файле дается позиция во включенном файле, но не в родительском.
строковое представление версии РНР, используемой в настоящий момент, например '3.0.8-dev'.
имя операционной системы, в которой работает синтаксический анализатор РНР, например 'Linux'.
значение «истина».
значение «ложь».
указывает на ошибку, отличную от ошибки анализатора, которую невозможно устранить.
указывает места, где имеется что-то ошибочное, но работа все равно продолжится; их может «перехватывать» сам скрипт. Примером может быть ошибочное регулярное выражение В ereg().
в файле скрипта обнаружен недопустимый синтаксис. Восстановление невозможно.
что-то произошло, возможно ошибка. Выполнение продолжается. Примером может служить использование строки без кавычек в качестве хэш-индекса или обращение к переменной, которой не присвоено значение.
равна сумме всех констант Е_*. Использование этой константы в функции приведет к выдаче отчета по всем обнаруженным
РНР.
В РНР константы Е_* обычно используются с функцией error_reporting(), чтобы установить уровень выдачи сообщений об ошибках (см. гл. 16)
ВНИМАНИЕ
С помощью функции define() можно определить дополнительные константы.
Обратите внимание, что это константы, а не макросы в стиле языка С. Константа может представлять только допустимые скалярные данные.
Пример 10.1. Определение констант
<?php
define("CONSTANT", "Hello world.");
echo CONSTANT; // выводит "Hello world."
?>
Пример 10.2. Использование констант _FILE_ и _LINE_
<?php
function report__error($file, $line, $message) {
echo "Сшибка в файле $file в строке $line: $message";
}
report_error(_FILE_, _LINE_, "Что-то не так!");
?>
Результат выполнения программы представлен на рис. 10.1.
Рис. 10.1. Результат выполнения скрипта