Для хранения постоянных величин, т.е. таких величин, значение которых не меняется в ходе выполнения скрипта, используются константы. Такими величинами могут быть математические константы, пароли, пути к файлам и тому подобное.
Константы, как и переменные, являются временным хранилищем значений в памяти. В отличие от переменных значение константы никогда не изменяется. Основное отличие константы от переменной состоит в том, что ей нельзя присвоить значение больше одного раза и ее значение нельзя аннулировать после ее объявления. Кроме того, у константы нет приставки в виде знака доллара и ее нельзя определить простым присваиванием значения. При объявлении константы используется функция define(), которая требует задать имя константы и значение этой константы.
Как же тогда можно определить константу? Для этого существует специальная функция define() . Ее синтаксис таков:
define(«Имя_константы»,
«Значение_константы»,
[Нечувствительность_к_регистру])
По умолчанию имена констант чувствительны к регистру. Для каждой константы это можно изменить, указав в качестве значения аргумента Нечувствительность_к_регистру значение True. Существует соглашение, по которому имена констант всегда пишутся в верхнем регистре.
Константам можно присваивать следующие типы данных.
Целые – целые числа или числа без десятичной точки (1, 999, 325812841).
Числа с плавающей точкой — числа, содержащие десятичную точку (1.11, 2.5, .44).
Строки – текстовая или числовая информация. Строковые данные всегда заключаются в кавычки («Hello World», «478-477-5555»).
Имена констант PHP в отличие от переменных не начинаются со знака «$». Имена констант обычно записывают в верхнем регистре. Имена констант могут содержать буквы, цифры и символ подчеркивания, они не могут, однако, начинаться с цифры.
Вывод констант
Следующий фрагмент кода демонстрирует объявление константы, присваивание константе значения и вывод результатов в окне браузера.
<!DOCTYPE html>
<head>
<title>A Web Page</title>
</head>
<body>
<p>
<?php
define(«STRING_CONST»,»My PHP program»);
define(«INTEGER_CONST»,500);
define(«FLOAT_CONST»,2.25);
echo STRING_CONST;
echo INTEGER_CONST;
echo FLOAT_CONST;
?>
</p>
</body>
</html>
В этом примере объявляются значения трех констант: STRING_CONST, INTEGER_CONST и FLOAT_CONST. Затем используется оператор echo для вывода содержимого констант в окне браузера. Кроме вывода в окне браузера, константы можно использовать при выполнении математических и строковых операций PHP.
Кроме того, для получения значения константы можно использовать функцию constant() с именем константы в качестве параметра.
<?php // определяем константу // PASSWORD define("PASSWORD","qwerty"); // определяем регистронезависимую // константу PI со значением 3.14 define("PI","3.14", True); // выведем значение константы PASSWORD, // т.е. qwerty echo (PASSWORD); // тоже выведет qwerty echo constant("PASSWORD"); echo (password); /* выведет password и предупреждение, поскольку мы ввели регистрозависимую константу PASSWORD */ echo pi; // выведет 3.14, поскольку константа PI // регистронезависима по определению ?>
Кроме констант, объявляемых пользователем, о которых мы только что рассказали, в PHP существует ряд констант, определяемых самим интерпретатором. Например, константа __FILE__ хранит имя файла программы (и путь к нему), которая выполняется в данный момент, __FUNCTION__ содержит имя функции, __CLASS__ – имя класса, PHP_VERSION – версия интерпретатора PHP. Полный список предопределенных констант можно получить, прочитав руководство по PHP.