Как создать константу в php
Перейти к содержимому

Как создать константу в php

  • автор:

Как создать константу в php

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

Оператор const

Для определения константы применяется оператор const , при этом в названии константы знак доллара $ (в отличие от переменных) не используется.

Обычно названия констант используют заглавные символы, но это условность.

После определения константы мы можем ее использовать также, как и обычную переменную.

PHP позволяет устанавливать значения констант на основе вычисляемых выражений:

Единственное исключение — мы не сможем изменить значение константы. То есть выражение PI = 3.1415; , которое должно изменить значение константы, не срабатает.

Функция define

Также для определения константы может применяться функция define() , которая имеет следующую форму:

define(string $name, string $value)

Параметр $name передает название константы, а параметр $value — ее значение. Значение константы может представлять тип int, float, string, bool, null или массивы.

Например, определим числовую константу:

Магические константы

Кроме создаваемых программистом констант в PHP имеется еще несколько так называемых «магических» констант, которые есть в языке по умолчанию:

  • __FILE__ : хранит полный путь и имя текущего файла
  • __LINE__ : хранит текущий номер строки, которую обрабатывает интерпретатор
  • __DIR__ : хранит каталог текущего файла
  • __FUNCTION__ : название обрабатываемой функции
  • __CLASS__ : название текущего класса
  • __TRAIT__ : название текущего трейта
  • __METHOD__ : название обрабатываемого метода
  • __NAMESPACE__ : название текущего пространства имен
  • ::class/span>: полное название текущего класса

Например, выведем текущую выполняемую строку и название файла:

Проверка существования константы

Чтобы проверить, определена ли константы, мы можем использовать функцию bool defined(string $name) . Если константа $name определена, то функция будет возвращать значение true :

Как создать константу в php

Константа может быть определена с помощью ключевого слова const или с помощью функции define() . В то время как define() позволяет задать константу через выражение, конструкция const ограничена как описано в следующем параграфе. После того, как константа определена, её значение не может быть изменено или аннулировано.

При использовании ключевого слова const допускаются только скалярные выражения ( bool , int , float и string ) и константы array , содержащие только скалярные выражения. Можно определить константы с типом resource , но не рекомендуется, так как это может привести к неожиданным результатам.

Получить значение константы можно, указав её имя. В отличие от переменных, вам не нужно предварять имя константы символом $ . Также можно использовать функцию constant() для получения значения константы, если вы формируете имя константы динамически. Используйте функцию get_defined_constants() для получения списка всех определённых констант.

Замечание: Константы и (глобальные) переменные находятся в разных пространствах имён. Это означает, что, например, true и $TRUE в целом отличаются.

Если используется неопределённая константа, выбрасывается Error . До PHP 8.0.0 неопределённые константы интерпретировались как простое слово string , то есть (CONSTANT vs «CONSTANT»). Этот резервный вариант объявлен устаревшим с PHP 7.2.0, при этом будет сгенерирована ошибка уровня E_WARNING . До PHP 7.2.0 вместо этого выдавалась ошибка уровня E_NOTICE. Смотрите также главу руководства, которая разъясняет, почему $foo[bar] — это неправильно (если bar не является константой). Это не относится к (полностью) определённым константам, которые всегда будут выбрасывать Error , если они не определены.

Замечание: Чтобы проверить, установлена ли константа, используйте функцию defined() .

  • У констант нет приставки в виде знака доллара ( $ );
  • Константы могут быть определены и доступны в любом месте без учёта области видимости;
  • Константы не могут быть переопределены или удалены после первоначального объявления; и
  • Константы могут иметь только скалярные значения или массивы.

Пример #1 Определение констант

define ( «CONSTANT» , «Здравствуй, мир.» );
echo CONSTANT ; // выводит «Здравствуй, мир.»
echo Constant ; // Выбросит ошибку: Неопределённая константа «Constant»
// До PHP 8.0.0 выводит «Constant» и выдаёт предупреждение.
?>

Пример #2 Определение констант с помощью ключевого слова const

// Простое скалярное значение
const CONSTANT = ‘Здравствуй, мир.’ ;

// Скалярное выражение
const ANOTHER_CONST = CONSTANT . ‘ Прощай, мир.’ ;
echo ANOTHER_CONST ;

const ANIMALS = array( ‘dog’ , ‘cat’ , ‘bird’ );
echo ANIMALS [ 1 ]; // выводит «cat»

// Массивы в константе
define ( ‘ANIMALS’ , array(
‘dog’ ,
‘cat’ ,
‘bird’
));
echo ANIMALS [ 1 ]; // выводит «cat»
?>

Замечание:

В отличие от определения констант с помощью функции define() , константы, объявленные с помощью ключевого слова const должны быть объявлены в самой верхней области видимости, потому что они определяются при компилировании скрипта. Это означает, что их нельзя объявлять внутри функций, циклов, выражений if и блоков try / catch .

Смотрите также

User Contributed Notes 6 notes

2 years ago

the documentation doesn’t go too far in explaining the crucial difference between the two ways of declaring constants in PHP.

Const is handled at compile time, define() at run time. For this reason, a constant cannot be conditionally defined using Const, for example.

Another difference we can notice occurs in the constant declarations in classes. Const infiltrates the class scope, while define() leaks into the global scope.

Class Myclass () const NAME = «Nicolas» ;
>

?>

The NAME constant is within the scope of the MyClass class.

PHP константы

Константа — это просто символьное имя для значения, которое обеспечивает возможность получить значение по имени, то есть, когда в программе указывается имя константы вместо неё подставляется значение.

Значение константы представляет собой фиксированное значение, которое не может быть изменено во время выполнения программы.

При использовании констант необходимо учитывать следующие правила:

  • Перед именем константы не нужно ставить знак доллара.
  • По умолчанию имена констант чувствительны к регистру символов, это означает, что имена some_const , Some_const или SOME_CONST будут считаться, как имена трёх различных констант.
  • Константы могут иметь значения только следующих типов: boolean, integer, float, string, NULL и массивы.
  • Константы не работают внутри строк.
  • Константы доступны из любой области видимости, это означает, что их можно использовать в любом месте сценария.
  • Константа не может быть удалена.
  • Имена констант условились писать заглавными буквами.

Создать константу можно двумя способами: с помощью функции define() или с помощью ключевого слова const , за которым следует имя константы:

Число: ", PI; > foo(); // Число: 3.1416 echo "Число: PI 
"; // Число: PI echo "Число: ".PI; // Число: 3.1416 ?>

Константы, создаваемые с помощью ключевого слова const создаются во время компиляции сценария. Это означает, что их нельзя определять внутри функций, циклов, условных инструкций и блоков try/catch .

Константы, создаваемые с помощью функции define() могут быть определены в любом месте, так как они создаются во время выполнения сценария:

 foo(); echo NUM; ?>

С этой темой смотрят:

Копирование материалов с данного сайта возможно только с разрешения администрации сайта
и при указании прямой активной ссылки на источник.
2011 – 2024 © puzzleweb.ru | razumnikum.ru

PHP: Константы

Разработчики часто работают с данными, которые никогда не меняются. Например, число π, которое всегда равно 3.14 и не может измениться.

Для обращения к подобным данным в PHP принято использовать константы:

Создание константы отличается от создания переменной. Оно начинается с ключевого слова const и последующего имени константы. При этом знак доллара не нужен. Далее ей присваивается нужное значение.

Константы принято именовать буквами в верхнем регистре с _ в качестве разделителя. Константа тоже может использоваться в любом выражении. Единственное ограничение — константу нельзя изменить.

В PHP много встроенных констант, которые можно использовать в любом месте программы. Вот некоторые из них:

  • PHP_VERSION — текущая версия PHP
  • PHP_MAXPATHLEN — максимальная разрешенная длина имени файла
  • PHP_INT_MAX — максимальное возможное значение целых чисел (integer)

Кроме обычных констант в PHP существует отдельная группа — магические константы. Их отличия заключаются в следующем:

  • Магические константы невозможно определить самому, можно пользоваться только существующими
  • Магические константы начинаются и заканчиваются символами __ (два подчеркивания)
  • Магия заключается в том, что такие константы имеют одно и то же значение только в пределах определенной части программы

Последний пункт говорит о том, что существуют не очень постоянные константы, но их изменения регламентированы и на практике не вызывают проблем. К подобным константам относятся:

  • __LINE__ — содержит текущую строку файла, в котором она используется
  • __FILE__ — путь до текущего файла
  • __DIR__ — путь до директории, в которой находится текущий файл

Задание

Создайте константу DRAGONS_BORN_COUNT и запишите в неё число 3 — это количество драконов, родившихся у Дайенерис.

Упражнение не проходит проверку — что делать? ��

Если вы зашли в тупик, то самое время задать вопрос в «Обсуждениях». Как правильно задать вопрос:

  • Обязательно приложите вывод тестов, без него практически невозможно понять что не так, даже если вы покажете свой код. Программисты плохо исполняют код в голове, но по полученной ошибке почти всегда понятно, куда смотреть.

В моей среде код работает, а здесь нет ��

Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.

Мой код отличается от решения учителя ��

Это нормально ��, в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи.

В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.

Прочитал урок — ничего не понятно ��

Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в «Обсуждениях». Идеально, если вы сформулируете непонятные моменты в виде вопросов. Обычно нам нужно несколько дней для внесения правок.

Кстати, вы тоже можете участвовать в улучшении курсов: внизу есть ссылка на исходный код уроков, который можно править прямо из браузера.

Полезное

Определения

  • Константа — способ сохранить информацию и дать ей имя для последующего использования в коде; константы нельзя изменять, в отличие от переменных.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *