Иногда в PHP переменные довольно неудобно использовать для постоянного хранения каких либо определенных значений, которые не меняются в течение работы программы. Такими значениями могут быть математические константы, пути к файлам, разнообразные пароли. Как раз для этих целей в PHP предусмотрена такая конструкция, как константа.
Константы — это идентификаторы (имена) простых значений. Их значение не может изменяться в ходе выполнения скрипта. Имена констант чувствительны к регистру. По принятому соглашению, имена констант всегда пишутся в верхнем регистре.
Имя константы должно соответствовать тем же правилам, что и другие имена в PHP. Правильное имя начинается с буквы или символа подчеркивания и состоит из букв, цифр и подчеркиваний. Регулярное выражение для проверки правильности имени константы выглядит так: [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*.
В РНР константы определяются функцией define(). Эта функция имеет формат:
Константы — это идентификаторы (имена) простых значений. Их значение не может изменяться в ходе выполнения скрипта. Имена констант чувствительны к регистру. По принятому соглашению, имена констант всегда пишутся в верхнем регистре.
Имя константы должно соответствовать тем же правилам, что и другие имена в PHP. Правильное имя начинается с буквы или символа подчеркивания и состоит из букв, цифр и подчеркиваний. Регулярное выражение для проверки правильности имени константы выглядит так: [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*.
В РНР константы определяются функцией define(). Эта функция имеет формат:
define ($name, $value, $case_sen), где:
$name - имя константы;
$value - значение константы;
$case_sen - необязательный параметр логического типа,
указывающий, следует ли учитывать регистр букв (true) или нет (false).
Пример:
<?php
define("pi",3.14,true);
echo pi;
// Выводит 3.14
?>
Различия между константами и переменными:
- У констант нет приставки в виде знака доллара ($);
- Константы можно определить только с помощью функции define();
- Константы могут быть определены и доступны в любом месте без учета области видимости;
- Константы не могут быть определены или аннулированы после первоначального объявления;
- Константы могут иметь только скалярные значения.
Предопределенные константы:
PHP предоставляет большой список предопределенных констант для каждого выполняемого скрипта. Многие из этих констант определяются различными модулями и будут присутствовать только в том случае, если эти модули доступны в результате динамической загрузки или в результате статической сборки.
В этот список входит и отдельный вид констант PHP — так называемые «магические константы». Это системные константы, значение которых определяет и устанавливает интерпретатор.
- __LINE__ Содержит номер текущей строки в текущем файле;
<?php
echo "Номер строки: " . __LINE__; // Номер строки: 2
echo "Номер строки: " . __LINE__; // Номер строки: 3
echo "Номер строки: " . __LINE__; // Номер строки: 4
?>
- __FILE__ Содержит полное имя текущего файла;
<?php
echo "Имя файла: " . __FILE__;
// Имя файла: C:\openServer\domeins\localhost\index.php
?>
- __FUNCTION__ Содержит имя текущей функции;
<?php
function mySampleFunc() {
echo "Имя функции: " . __FUNCTION__;
}
mySampleFunc(); //Имя функции: mySampleFunc
?>
- __CLASS__ Содержит имя текущего класса;
<?php
class Sample
{
public function __construct() {
echo __CLASS__;
}
}
$obj = new Sample(); // Sample
?>
- __METHOD__ Содержит имя текущего метода текущего класса.
<?php
class Sample
{
public static function myMethod() {
echo "Имя метода: " . __METHOD__;
}
}
Sample::myMethod(); // Имя метода: myMethod
?>
Эти константы очень удобны при отладке, но во всех других случаях их лучше не использовать.