Языки программирования

Константы

Иногда в PHP переменные довольно неудобно использовать для постоянного хранения каких либо определенных значений, которые не меняются в течение работы программы. Такими значениями могут быть математические константы, пути к файлам, разнообразные пароли. Как раз для этих целей в PHP предусмотрена такая конструкция, как константа.

Константы — это идентификаторы (имена) простых значений. Их значение не может изменяться в ходе выполнения скрипта. Имена констант чувствительны к регистру. По принятому соглашению, имена констант всегда пишутся в верхнем регистре.

Имя константы должно соответствовать тем же правилам, что и другие имена в 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 
    ?>
Эти константы очень удобны при отладке, но во всех других случаях их лучше не использовать.
Самоучитель по PHP