Константы
Синтаксис языка и операторы
🕛 01.11.2006, 12:56
РНР устанавливает значения нескольких констант и предоставляет механизм установки пользовательских констант во время выполнения. Константы подобны переменным с единственным отличием: их однажды установленные с помощью функции define() значения изменению больше не подвергаются. Предопределенные константы (доступные всегда):
_FILE_
Имя сценария, интерпретируемого в текущий момент. При использовании в файле, включенном или вызванном родительским сценарием (директивой include или require), хранит имя включаемого, а не родительского файла.
_LINE_
Номер текущей интерпретируемой строки. Для подключаемых сценариев позиция указывается относительно этих файлов. PHPJ/ERSION
Строковое значение, хранящее версию РНР интерпретатора, например: «3.0.8-dev».
PHP_OS
Название операционной системы, в которой исполняется РНР, например: «Linux».
TRUE
Значение «Истинно». Регистр не имеет значения.
FALSE
Значение «Ложно». Регистр не имеет значения.
EJRROR
Обозначает ошибку, отличную от ошибки интерпретатора, вызывающую критический сбой.
E_WARNING
Обозначает условие, когда РНР находит ошибку, но не считает ее критической и это не мешает РНР исполнять сам сценарий. Например, такой некритической ошибкой может быть неправильное регулярное выражение в функции еreg().
E_PARSE
Обозначает ситуацию, когда интерпретатор не может исполнить сценарий из-за грубого нарушения синтаксиса.
EJOTICE
Сообщение о событии, которое может быть или не быть ошибкой. Исполнение сценария продолжается. Например, и индексе ассоциированного массива может использоваться строка без кавычек или в выражении использоваться значение несуществующей неременной.
E_ALL
Обобщение всех Е_* констант (в РНР 4 их число увеличилось). При использовании с функцией error_reportingO сообщает обо всех проблемных моментах, отмеченных РНР.
Константы Е_* обычно используются в функции error_reporting() для установки критического уровня ошибки РНР, то есть уровня ошибки, которая вынуждает РНР прекратить исполнение сценария и выдать сообщение об ошибке.
Помимо этого, дополнительные модули при загрузке определяют собственные константы - см. описание функций соответствующих модулей и библиотек. Поэтому совокупный набор констант зависит от того, с какими библиотеками был скомпилирован РНР и какие модули были загружены.
Определять дополнительные константы позволяет функция def ine(). Не забывайте, что константе может быть присвоено только константное значение (а не выражение-макрос, как в С).
defineC'CONSTANT". "Hello world ").
echo CONSTANT;
// outputs "Hello world "
<?php // Пример использования констант _FILE_ и _LINE_
function report_error($file. $line. $message) { echo "Ошибка произошла в файле
$file. в стороке Sline- Smessage
": } report_error
(_FILE_._LINE_. "Где-то здесь ошибка!");
?>