Магические методы и предопределенные константы в PHP. Волшебные константы Создание константы php
константы .Константам можно присваивать следующие типы данных.
Целые – целые числа или числа без десятичной точки (1, 999, 325812841).
Числа с плавающей точкой - числа, содержащие десятичную точку (1.11, 2.5, .44).
Строки – текстовая или числовая информация . Строковые данные всегда заключаются в кавычки ("Hello World", "478-477-5555").
Имена констант PHP в отличие от переменных не начинаются со знака "$". Имена констант обычно записывают в верхнем регистре. Имена констант могут содержать буквы, цифры и символ подчеркивания (_ ); они не могут, однако, начинаться с цифры. Объявление констант показано ниже.
define("STRING_CONSTANT", "This is my string."); define("NUMERIC_CONSTANT", 5);
Вывод констант
Следующий фрагмент кода демонстрирует объявление константы, присваивание константе значения и вывод результатов в окне браузера.
Пример 3.2.
My PHP program 500 2.25
В этом примере объявляются значения трех констант: STRING_CONST , INTEGER_CONST и FLOAT_CONST . Затем используется оператор echo для вывода содержимого констант в окне браузера. Кроме вывода в окне браузера, константы можно использовать при выполнении математических и строковых операций PHP.
Операторы PHP
Операторы применяются для выполнения операций или действий с переменными. Они могут включать присваивание значения переменной, выполнение сложения переменных, сравнение значений переменных и определение состояния условия.
Арифметические операторы
Операторы присваивания
Операторы сравнения
Логические операторы
Арифметические операторы используются для выполнения основных математических операций. В следующей таблице представлены арифметические операторы , которые применяются в PHP .
Пример 3.3.
The sum is 11 The difference is 9 The product is 27 The quotient is 343
Порядок выполнения операций
Когда вычисляется арифметическое выражение, существует заданный порядок, в котором выполняются операции. Этот порядок называется приоритетом операций. Умножение и деление имеют преимущество (и выполняются первыми) перед сложением и вычитанием, при движении в выражении слева направо. Этот порядок имеет важное влияние на то, будут ли получены ожидаемые результаты. Рассмотрим следующие объявления и присваивания.
Получающееся значение будет равно 18. Сначала $num1 умножается на $num2 , чтобы получить 20; затем $num3 вычитается из 20, чтобы получить 18. Предположим, однако, что в действительности надо сначала вычесть $num3 из $num2 , а затем умножить на $num1 , чтобы получить 12. Показанное выше выражение не создаст этот результат, потому что умножение имеет приоритет перед вычитанием и выполнится первым.
Поэтому часто необходимо переопределить порядок выполнения операций и явно управлять порядком вычисления выражения. Для этого используют скобки (), которые могут помочь изменить порядок выполнения арифметических операций. Приведенный выше пример можно переписать следующим образом.
В этот раз $answer равно 12. $num3 вычитается из $num2 , чтобы получить 3. Затем 3 умножается на $num1 .
Операторы присваивания используются для изменения значения текущей переменной на значение справа от оператора. В следующей таблице представлены операторы присваивания языка PHP.
Оператор | Описание |
---|---|
= | Переменной слева присваивается вычисленное справа значение |
+= | Складывает значение слева со значением справа и присваивает результат переменной слева |
-= | Вычитает значение справа из значения слева и присваивает результат переменной слева |
*= | Умножает значение справа на значения слева и присваивает результат переменной слева |
/= | Делит значение слева на значение справа и присваивает результат переменной слева |
%= | Делит значение слева на значение справа и присваивает остаток (по модулю) переменной слева |
.= | Значение слева соединяется (конкатенация) со значением справа, и результат присваивается переменной слева |
Операторы сравнения используются для сравнения значений. В следующей таблице представлены операторы сравнения языка PHP.
В этой заметке речь пойдет о константах. Как обычно разберемся с самим понятием константы в языках программирования и посмотрим, как объявляются и используются константы в PHP .
Понятие константа и константы в PHP
Слово константа должно быть вам уже знакомо из математики:
“Математическая константа - величина, значение которой не меняется.”
Тоже самое и в PHP. Константа в PHP – это идентификатор, который служит для обозначения простого значения (строка, число какое-нибудь), которое не может изменяться в процессе выполнения кода.
Для объявления константы (присвоения ей значения) используется функция define . Пример объявления константы:
Имена констант в PHP чувствительны к регистру (большие и маленькие буквы различаются), так что нужно быть внимательней. Также существует соглашение, что имена констант всегда пишутся в верхнем регистре.
Имя константы должно начинаться с буквы или символа подчеркивания “_” и может состоять из букв, цифр и подчеркивания.
Рассмотрим простой пример использования константы:
В этом примере мы объявили константу и использовали ее в программе.
Для чего используются константы и не проще ли использовать переменные?
Как уже было сказано, константы не могут изменить своего значения в процессе выполнения программы. В константах обычно сохраняют постоянные параметры сайта, такие как реквизиты доступа к базе данных (хост, логин и пароль пользователя, имя базы данных), расположение сайта на диске и многие другие настройки.
Если мы будем использовать переменные, то скрип может случайно (в случаем ошибки) изменить значение переменной и будет работать не так как вы задумали.
Использование констант гарантирует, что то значение которое вы указали при объявлении константы останется неизменным.
Привет. Сегодня решил написать о константах в PHP. Расскажу как константы работают, какие чаще всего применяются и бывают.
Что такое константы в контексте PHP?
Константы — это по сути переменные у которых нельзя переопределить значение. Т.е после указания их значения вы больше не сможете его менять по ходу выполнения скрипта. Они как правило пишутся в верхнем регистре и в названии конкретно отражают хранимую в них информацию.
В PHP существует 2 разновидности констант:
- Обычные (задаются программистом)
- Предопределенные (задаются интерпретатором)
Обычные константы
Такой тип констант обычно используются как правило для служебных целей и создаются программистом в процессе написание кода.
Синтаксис создания обычной константы:
Define("PI",3.1415);
Создание константы происходит с помощью встроенной конструкции define ("Имя константы","Значение константы").
Для краткого пояснения механизма работы с константами покажу пример того что значения в константах задается один раз, и более не может быть изменено:
Для того чтобы проверить существование константы в языке предусмотрена функция defined («CONST_NAME»).
Предопределенные константы
Предопределенные константы отличаются от обычных способом создания. Они устанавливаются самим интерпретатором и меняют свое значение в контексте выполнения программы. Так же они не чувствительны к регистру, __CLASS__ или __class__ будут прекрасно выполнены интерпретатором.
Вот самые часто используемые предопределенные константы:
- __FILE__ — хранит имя выполняемого на данный момент скрипта.
- __FUNCTUIN__ — имя текущей функции.
- __CLASS__ — имя текущего класса.
- PHP_VERSION — содержит версию интерпретатора PHP.
- TRUE , FALSE , NULL — содержат в себе значения соответствующие своему названию.
Для примера работы таких констант посмотрим на использование одной из них — __FUNCTION__ :
Как можно видеть из примера константа __function__ вернула имя функции в которой она была первоначально вызвана — abc () .
И да, константу невозможно удалить как обычную переменную функцией unset () , она существует от начала и до конца выполнения программы.
На этом все, желаю успешной практики и хорошего настроения. До скорого.
сайт Права на контент защищены.В PHP имеется набор специальных предопределенных констант и магических методов для ваших проектов. В отличие от обычных констант, которые можно устанавливать с помощью define() , значение предопределенных констант зависит от того, где они используются, и является информацией только для чтения о коде и PHP системе. Магические методы можно использовать в ваших классах для получения доступа к специальному функционалу PHP.
В данном уроке мы рассмотрим несколько полезных предопределенных констант и магических методов с примерами использования в коде.
Предопределенные константы
Предопределённые константы используются для получения информации о вашем коде. Имя такой константы пишется заглавными буквами между сдвоенными подчеркиваниями, например, __LINE__ и __FILE__ . Вот несколько полезных предопределённых констант, доступных в PHP:
- __LINE__ возвращает номер строки в исходном файле, где используется константа:
- __FILE__ представляет имя файла, включая полный путь:
- __DIR__ представляет только путь к файлу:
- __CLASS__ представляет имя текущего класса:
- __FUNCTION__ представляет имя текущей функции:
- __METHOD__ представляет имя текущего метода:
- __NAMESPACE__ представляет имя текущего пространства имен:
Магические методы
Магические методы представляют крючки для специального функционала PHP. Их имена пишутся маленькими буквами с двумя предшествующими подчеркиваниями, например, __construct() и __destruct() .
Construct() - магический метод, который PHP вызывает для создания экземпляра вашего класса. Он принимает любое количество аргументов.
Destruct()- магический метод, который вызывается, когда объект уничтожается коллектором PHP. Данный метод не принимает аргументов и обычно используется для выполнения специальных операций, например, для закрытия соединения с базой данных.
Следующие несколько магических методов предназначены для манипуляций со свойствами, и представляют способ для PHP обработать обращения ко свойствам и методам, которые не были определены (или недоступны).
PHP вызывает метод __get() в получающем контексте, если свойство не определено (или недоступно). Метод принимает один аргумент - имя свойства. Он должен вернуть значение, которое будет обрабатываться как значение свойства.
Метод __set() вызывается для неопределенного свойства в задающем контексте. Данный метод принимает два аргумента, имя свойства и значение.
myAarray[$prop] = $value; } public function __get($prop) { return $this->myArray[$prop]; } public function __isset($prop) { return isset($this->myArray[$prop]); } public function __unset($prop) { unset($this->myArray[$prop]); } public function __toString() { return __CLASS__ . ":" . $this->name; } } $obj = new MySample(); if (!isset($obj->name)) { $obj->name = "Alireza"; } echo $obj->name; // Alireza echo $obj; // MySample:Alireza
В выше приведенном коде свойство name не определено в классе. В коде предпринимается попытка назначить данному свойству значение “Alireza” и PHP вызывает магический метод __set() . Он получает “name” в качестве аргумента $prop и “Alireza” как $value , и сохраняет значение в частном массиве $myArray . Метод __get() работает в схожей манере. При выводе $obj->name вызывается метод __get() и ему передается значение “name” как аргумент $prop .
Есть и другие магические методы, которые помогают манипулировать недоступными свойствами, как в приведенном примере: __isset() , __unset() и __toString() . Оба метода __isset() и __unset() запускаются функциями с такими же именами, но без подчеркиваний в PHP.
Isset() проверяет, установлено свойство или нет. Данный метод принимает один аргумент - свойство, которое надо проверить. Метод __unset() принимает один аргумент, имя свойства, которое нужно сбросить.
Во многих случаях удобно представление объекта как строки, например, для вывода пользователю или другому процессу. Обычно PHP представляет объект как идентификатор в памяти, что плохо для таких функций. Метод __toString() помогает представить объект как строку. Метод запускается во многих ситуациях, где объект используется как строка, например, echo "Hello $obj" . Также его можно вызвать непосредственно, как любой другой публичный метод.
Последнее обновление: 1.11.2015
Константы, как и переменные хранят определенное значение, только в отличие от переменных значение констант может быть установлено только один раз, и далее мы уже не можем его изменить. Например, определим числовую константу:
Для определения константы используется оператор define , который имеет следующую форму: define(string $name, string $value, bool $case_sen=false) . Параметр $name передает название константы, а параметр $value - ее значение. Третий необязательный параметр принимает логическое значение true или false . Если значение равно false, то при использовании константы будет учитываться ее регистр, если true - регистр не учитывается. В нашем случае третий параметр не использован, поэтому он по умолчанию равен false.
После определения константы мы можем ее использовать также, как и обычную переменную. Единственное исключение - мы не сможем изменить ее значение. Другое отличие от переменной - не надо использовать знак $ . То есть выражение NUMBER=33; работать не будет.
Предопределенные константы
Кроме создаваемых программистом констант в PHP имеется еще несколько встроенных констант:
FILE__ : хранит полный путь и имя текущего файла
LINE__ : хранит текущий номер строки, которую обрабатывает интерпретатор
DIR__ : хранит каталог текущего файла
FUNCTION__ : название обрабатываемой функции
CLASS__ : название текущего класса
METHOD__ : название обрабатываемого метода
NAMESPACE__ : название текущего пространства имен
Например, выведем текущую выполняемую строку и название файла:
Проверка существования константы
Чтобы проверить, определена ли константы, мы можем использовать функцию bool defined(string $name) . Если константа $name определена, то функция будет возвращать значение true