Константы в PHP
Константы - это значения, которые не изменяются со временем. Ещё из школы Вы, наверняка, знаете многие константы, например, число п, число e, ускорение свободного падения и другие. И, разумеется, при программировании тоже очень часто возникает необходимость ввода констант. И о том, как создавать и использовать константы в PHP, мы и поговорим в этой статье.
Давайте с Вами создадим константу числа п:
<?php
define(PI, 3.1415926);
echo PI;
?>
Оператор define создаёт константу PI и присваивает ей значение 3.1415926. Дальше мы выводим эту константу через оператор echo. Всё очень просто, однако, есть одна рекомендация, которую я советую Вам всегда соблюдать. Обязательно пишите константы заглавными буквами. Не то, чтобы это было обязательно, но крайне желательно. И так принято не только в PHP, но и в других языках тоже.
Разумеется, впоследствии изменить константу PI будет нельзя (на то она и константа).
Теперь разберём одну функцию, которая проверяет: "Определена ли заданная константа". Давайте напишем такой скрипт:
<?php
if (!defined("PI")) define(PI, 3.1415926);
echo PI;
?>
Здесь проверяется существование константы PI. И если она не существует (то есть функция define() вернула false), то тогда инициализируем эту константу. Затем просто выводим её.
Как видите, создавать и использовать свои константы в PHP - это очень просто.
И, напоследок, хочется рассказать об уже встроенных константах PHP. Давайте с Вами напишем простой скрипт:
<?php
phpinfo();
?>
Ближе к концу есть раздел "PHP Variable". Собственно, это не совсем константы, однако, они являются константами при выполнении данного скрипта. Разумеется, при выполнении другого скрипта они уже будут иметь другие значения (не все, разумеется). Давайте с Вами выведем пару констант, чтобы Вы поняли, как с ними работать, ведь они используются безумно часто:
<?php
echo $_SERVER["REMOTE_ADDR"];
echo "<br />";
echo $_SERVER["QUERY_STRING"];
?>
В данном скрипте мы выводим IP-адрес пользователя, запустившего скрипт, а на следующей строке выводим строку запроса (например, "index.php?id=7"). Забегая немного вперёд, говорю, что здесь мы работаем с глобальным массивом $_SERVER. С массивами мы ещё познакомимся, но, думаю, что те, кто работал с массивами в других языках программирования, без проблем узнают синтаксис. Что же касается других констант, то с ними работа происходит аналогично.
-
- Михаил Русаков
Комментарии (10):
Пипец! Не выходит вывести IP. В Denwer-е выводит вот этот ип:127.0.0.1, а когда закачиваю свою страницу с этим Вашим php-кодом на хостинг (cishost.ru-микро), то не выводит! Этот код нужно ведь вставлять между тегами body? В чём может быть причина?
Ответить
Подозрительно дешёвый хостинг... Но речь не об этом. Всё должно работать и должен появиться Ваш IP-адрес, если Вы не совершаете мелких ошибок, конечно, которых могут быть тысячи. Например, загрузили файл в одну папку, а обращаетесь к такому же файлу, но в другой папке. Возможно, файл загрузился лишь частично, как следствие, он нерабочий. И так далее, тут можно ещё долго гадать. Можете попробовать ещё вызвать функцию phpinfo().
Ответить
Не понимаю.. Почему у меня выполняется условоие if (!defined(PI)) если перед этим я вводил define (PI) ?
Ответить
Полный код покажите.
Ответить
<html> <head> <title> Константы в PHP/1 </title> </head> <body> <?php define(PI,3.145926); echo PI; if (!defined(PI)) define(PI,3.145926); else echo "Уже есть такая константа" ?> </body> </html>
Ответить
Внутри этой функции надо в кавычках PI держать, в статье я тоже уже подправил.
Ответить
с комментариями на вашем сайте проблема... если я нажал ответить на коммент, то свой написать не могу(пока не обновлю страницу). исправьте. А также орфогр. ошибка - после второго кода, не функция define() вернула false, a функция defineD() вернула false!
Ответить
Михаил, что-то у меня не выводится константа.
Ответить
Ошибка: И если она не существует (то есть функция define() вернула false)- defineD
Ответить
А QUERY_STRING если не выводится что это значить?
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.