Как определить константу в php
PHP Константы
Константы похожи на переменные, за исключением того, что после их определения они не могут быть изменены или не определены.
PHP Константы
Примечание. В отличие от переменных, константы автоматически становятся глобальными для всего скрипта.
Создать PHP константу
Синтаксис
Пример
Создайте константу с регистрозависимым именем:
Пример
Создайте константу с регистронезависимым именем:
PHP Константа Array
Пример
Создать константу Array:
Константы глобальные
Константы автоматически становятся глобальными и могут использоваться во всем скрипте.
Пример
В этом примере используется константа внутри функции, даже если она определена вне функции:
ПАЛИТРА ЦВЕТОВ
ПРИСОЕДИНЯЙТЕСЬ!
Получите ваш
Сертификат сегодня!
Связь с админом
Если вы хотите сообщить об ошибке, а также внести предложение о работе сайта, добавить объявление или рекламу на сайт, не стесняйтесь отправить админу электронное письмо на email:
Топ Учебники
Топ Справочники
Топ Примеры
Веб Сертификаты
Этот сайт оптимизирован для обучения и тестирования. Примеры могут быть упрощены для улучшения чтения и базового понимания. Учебные пособия, ссылки и примеры постоянно пересматриваются, чтобы избежать ошибок, но мы не можем гарантировать полную правильность и работоспособность всего контента. Используя этот сайт, вы соглашаетесь с тем, что прочитали и приняли условия использования, cookie и политику конфиденциальности.
Также вы можете абсолютно бесплатно скачать офлайн версию сайта W3Schools на русском архивом с GitHub и пользоваться локально на своём компьютере.
Также доступна версия сайта W3Schools на украинском языке.
Copyright 1999-2021 by Refsnes Data. All Rights Reserved.
Сайт работает на фреймворке W3.CSS.
Константы в PHP — const и define()
Объявлять константы в PHP можно двумя способами:
У каждого способа есть свои особенности, чтобы их понять, давайте рассмотрим все поэтапно, как и что менялось с каждой версией PHP.
Как создавать константы
PHP меньше 5.3
С версии PHP 5.3
Появилось ключевое слово const и теперь константу можно определять еще и с помощью него.
Однако, в const нельзя указать переменную, функцию или какое то выражение, а нужно передавать скаляр «напрямую»:
Тогда как для define() таких ограничений нет.
PHP 5.6
Стало возможным указывать в значения const примитивные PHP выражения (выражения из скаляров):
Стало возможным хранить массивы в константах:
Разница между define() и const
#1 const должны быть объявлены в верхней области
Потому что они определяются при компилировании скрипта. Это значит, что const нельзя использовать внутри функций/циклов/выражений if или try/catch блоков.
#2 const всегда регистрозависима
В то время как define() позволяет создать регистро-независимые константы:
#3 const понимает только скаляры
const нельзя передать переменные, функции, выражения, а define() можно:
С версии PHP 5.6 в const также можно указывать примитивные выражения, а не только скаляры.
#4 const может хранить массивы с версии PHP 5.6, а define с PHP 7.0
Итоги сравнения
Константы PHP класса
Объявленная константа принадлежит именно классу, она не принадлежит ни одному объекту и является общей на всех объектов (экземпляров) класса.
Константы для классов чем-то похожи на статические (static) свойства класса. Не углубляясь в подробности, разница в том, что константу нельзя изменить.
«Волшебные» константы
И в заключении вспомним про особые константы PHP.
В PHP есть девять волшебных констант, которые меняют свое значение в зависимости от контекста, в котором они используются. Например, значение __LINE__ зависит от строки в скрипте, на которой эта константа указана. Все «волшебные» константы разрешаются во время компиляции, в отличии от обычных констант, которые разрешаются во время исполнения. Специальные константы нечувствительны к регистру и их список приведен ниже:
Как определить константу в php
называется именованная величина, которая не изменяется в процессе выполнения программы (скрипта).
В отличие от переменных, вы не можете изменять значения констант, которые были им присвоены при их объявлении. Константы удобно использовать для хранения значений, которые не должны изменяться во время работы программы. Константы могут содержать только скалярные данные (логического, целого, плавающего и строкового типов).
В РНР константы определяются функцией define(). Эта функция имеет следующий формат:
define ($name, $value, $case_sen), где:
Пример определения и использования констант в PHP:
Если параметр $case_sen равен true, то интерпретатор будет учитывать регистр символов при работе с константой. Обратите внимание, что константы используются без предваряющего знака $.
Различия между константами и переменными:
У констант нет приставки в виде знака доллара ($);
Константы можно определить только с помощью функции define(), а не присваиванием значения;
Константы могут быть определены и доступны в любом месте без учета области видимости;
Константы не могут быть определены или аннулированы после первоначального объявления;
Константы могут иметь только скалярные значения.
Проверка существования констант
Для проверки существования константы можно использовать функцию defined(). Данная функция возвращает true, если константа объявлена. Приведем пример:
Предопределенные константы PHP
В PHP существуют следующие предопределенные константы:
PHP предоставляет большой список предопределенных констант для каждого выполняемого скрипта. Многие из этих констант определяются различными модулями и будут присутствовать только в том случае, если эти модули доступны в результате динамической загрузки или в результате статической сборки.
Есть пять предопределенных констант, которые меняют свое значение в зависимости от контекста, в котором они используются. Например, константа __LINE__ зависит от строки в скрипте, на которой эта константа указана. Специальные константы нечувствительны к регистру и их список приведен ниже:
Константы в PHP
Константа в php, как и переменная, является ячейкой для хранения памяти. Константа — величина имеющая собственное имя, и не меняющаяся в процессе исполнения скрипта.
Применяются они, когда в программу нужно ввести пароль, путь к файлу, дату, и им подобные постоянные данные.
Определяется константа функцией define ()
Эта программа выведет на экран число 6548962
«PAROL» — имя константы. Предпочтительно — заглавными буквами. Нельзя начинать цифрой.
6548962 — постоянное значение константы
Пример использования констант на сайте: изображение шапки имеется на всех страницах сайта, и чтобы каждый раз не прописывать путь к файлу изображения, можно определить константу, присвоив ей это путь в значении, и затем использовать в нужной части скрипта
Кроме констант определяемых разработчиком, существуют константы, выставляемые интерпретатором. Это, например, сообщения об ошибках, указатели путей к файлам, а так же огромное количество констант объявленных в различных расширениях.
Список всегда доступных предопределённых констант
__LINE__ — текущая строка в файле
__FILE__ — полный путь и имя текущего файла
__FUNCTION__ — имя функции
__CLASS__ — имя класса
__METHOD__ — имя метода класса
Что такое предопределённая константа, вернее как она используется, хорошо понятно из примера вывода на экран сообщений об ошибках.
Браузер выведет такое сообщение.
Как видите, константы сами определили путь к файлу и номер строки в которых, возможно, появится ошибка. Наверное поэтому их ещё называют волшебным константами.
На экран выведется одно из значений в зависимости от того, будет обнаружена константа, или нет.
Помимо пользовательских и предопределённых констант, php поддерживает ещё один, очень редко применяемый и малоизвестный вид констант — динамические константы.
Как видно из прилагательного (динамические), и вопреки своему названию, константы всё таки могут меняться, и это ещё раз указывает на гибкость языка php.
Эта программа выведет на экран значение — единицу. Интересная штука в плане безопасности программы. В дальнейшем разберёмся с ней подробнее.
Перемена
— У тебя есть мечта?
— Есть.
— Какая?
— Хочу бросить пить.
— Так брось.
— Да? А как потом жить без мечты?
constant
(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
constant — Возвращает значение константы
Описание
Функция constant() полезна, если вам необходимо получить значение константы, но неизвестно её имя. Например, если оно хранится в переменной или возвращается функцией.
Данная функция также работает с константами классов.
Список параметров
Возвращаемые значения
Ошибки
Примеры
Пример #1 Пример функции constant()
echo MAXSIZE ;
echo constant ( «MAXSIZE» ); // результат аналогичен предыдущему выводу
interface bar <
const test = ‘foobar!’ ;
>
class foo <
const test = ‘foobar!’ ;
>
Смотрите также
User Contributed Notes 18 notes
The constant name can be an empty string.
define(«», «foo»);
echo constant(«»);
If you are referencing class constant (either using namespaces or not, because one day you may want to start using them), you’ll have the least headaches when doing it like this:
class Foo <
const BAR = 42 ;
>
?>
namespace Baz ;
use \ Foo as F ;
echo constant ( F ::class. ‘::BAR’ );
?>
since F::class will be dereferenced to whatever namespace shortcuts you are using (and those are way easier to refactor for IDE than just plain strings with hardcoded namespaces in string literals)
The use of constant() (or some other method) to ensure the your_constant was defined is particularly important when it is to be defined as either `true` or `false`.
If `BOO` did NOT get defined as a constant, for some reason,
The reason is that PHP ASSUMES you «forgot» quotation marks around `BOO` when it did not see it in its list of defined constants.
So it evaluates: `if (‘BOO’)`.
Since every string, other than the empty string, is «truthy», the expression evaluates to `true` and the do_something() is run, unexpectedly.
then if `BOO` has not been defined, `constant(BOO)` evaluates to `null`,
which is falsey, and `if (null)`. becomes `false`, so do_something() is skipped, as expected.
Note that only the version using `defined()` works without also throwing a PHP Warning «error message.»
(disclosure: I also submitted an answer to the SO question linked to above)