PHP уроки
ПРОСТО самая лучшая обучалка PHP!
  • Студия LPHPRU
  • Уроки PHP
  • Контакты
  • Помощь
Меню
  • PHP - с чего начать?
  • Уроки PHP
  • Функции PHP
  • Массивы
  • Denwer
  • MySQL
  • Информация
  • Dreamweaver уроки
  • JQuery уроки
  • Галерея
Календарь
Январь (2021)
ПнВтСрЧтПтСбВс
    123
45678910
11121314151617
18192021222324
25262728293031
В продаже

  • Что нового?

    • Тест №2
    • Тест №1 для разработчиков
    • PHP 5.6 RC1
    • SQL. Как cкопировать данные одной колонки в другую, в той же таблице
    • GRUB изменить порядок загрузки OS в Linux
    • SSH - вход на сервер без ввода пароля
    • PhpMyAdmin - проблема с загрузкой большого файла на сервер
  • Комментарии

    • тут нечего не понятно
    • Может уже пора на WebStorm переходит...
    • Здравствуйте. 10 лет пользуюсь др...
    • Была такая проблема, решалась пе...
    • Возможно с течением времени этот...
  • TOP-5

    • Метод POST (2939500)
    • Привет, МИР! (906943)
    • Метод GET (661655)
    • Операторы (601601)
    • Firefox уже запущен, но не отвечает... (346830)

Константы (define, defined)

Главная » PHP - с чего начать? » Константы (define, defined)
PHP урок № 344

Константы в PHP

Константа - это та же переменная, за исключением того, что значение константы не меняется в процессе исполнения скрипта! Это главное отличие константы от переменной.
Как объявить константу?
В php есть специальная функция для объявления константы и присвоения ей значения. Что это значит? К примеру переменная объявляется просто по ходу исполнения скрипта, то есть вы вводите новую переменную в любом месте страницы присвоив знак доллара перед именем переменной ($name) и всё, переменная готова. Она уже существует в памяти. Установив оператор присваивания и написав некое значение, вы тем самым устанавливаете значение этой переменной ($name = 500;). Для того чтоб объявить константу и присвоить ей значение используется функция define().

Листинг № 1 - Определяем константу

<?php

// Определяем константу NAME и присваиваем ей значение 500
define('NAME','500');

echo 
NAME; // 500

?>
В листинге №1 мы видим как константа с именем NAME получает значение 500. В функции define(), есть так же третий не обязательный аргумент. Если задано значение TRUE, константа будет определена без учёта регистра. По умолчанию - с учётом регистра; т.е. NAME и Name это разные значения. Если хотим использовать константу без учёта регистра, следует определить так константу:

Листинг № 2 - Определяем константу без учёта регистра.

<?php

// Определяем константу NAME и присваиваем ей значение 500
define('NAME','500', TRUE);

echo 
NAME; // 500
echo Name; // 500

?>
Есть такое негласное правило, или можно сказать, даже правило хорошего тона при написании кода. Имена констант пишутся буквами верхнего регистра (NAME). Это значительно выделяет константы и повышает читабельность кода.
Ну и конечно, вы успели заметить ещё одно отличие константы от переменной - это то, что перед именем константы не ставится знак доллара, который обязателен при именовании переменной.

Где применяются константы, как их использовать?

На мой взгляд, чаще всего константы используются для определения путей, линков и защиты скриптов.
Например для использования одной и той же директории внутри сайта, которая находится /images/png/logo/events/ - не обязательно писать этот путь десять раз из страницы в страницу. Достаточно определить константу и присвоить ей в качестве значения этот самый путь. И его можно будет использовать в любом месте скрипта, на разных страницах, это очень удобно!

Листинг № 3 - Применение констант в php

<?php

define
('IMGEVENTS','/images/png/logo/events/');

echo 
IMGEVENTS; // /images/png/logo/events/

echo '<img src="'.IMGEVENTS.'pic.png">';

?>
Такое объявление констант рационально при использовании единого файла конфигурации. В котором будут прописаны все константы сайта. При изменении конфигурации сайта, смене названия папки или перемещении папки в другую папку, достаточно будет изменить путь к этой директории в одном месте, в файле конфигурации. Конечно это касается не только папок. Так же можно легко прописывать путь до любого файла системы с аналогичным успехом.

defined()

Функция defined() принимает всего лишь один аргумент - это имя константы. Если константа установлена, функция возвращает TRUE, в противном случаи FALSE.

Листинг № 4 - Проверяем установлена константа или нет

<?php

// Определяем константу CONST и присваиваем ей значение yes
define('CONST','yes');


if(
defined('CONST')) // Константа установлена.
{
   echo 
'Константа установлена.';    
}
else
{
    echo 
'Константа НЕ определена!';    
}

?>

Предопределённые константы

Предопределённые константы - это такие константы, которые уже определены внутри языка PHP и доступны везде.
Константы Описание
__LINE__ Текущая строка в файле
__FILE__ Полный путь и имя текущего файла
__FUNCTION__ Имя функции
__CLASS__ Имя класса
__METHOD__ Имя метода класса

Листинг № 5 - Работа с предопределёнными константами.

<?php

echo 'Имя файла '. __FILE__ ;
echo 
'Строка '.__LINE__;       // Строка 4

?>

Урок закончен.

SETTER © LPHP.RU
Администрация сайта
25.04.2011 16:04:49

Урок девятый. Типы данных.
Понравился урок? Не пропусти следующий!
Рекомендованные уроки этого раздела:
  • Оператор присваивания. Арифметические операторы.
  • Комментарии
  • Константы (define, defined)
  • Привет, МИР!

Напишите свой комментарий
Ваше имя
Сообщение
Введите цифры с картинки:
 

Комментарии

Роман 25.08.2011 18:20:36
Текст сообщения класс
Максим 04.10.2011 23:57:28
А к примеру хранить в константах все литералы интерфейса это хорошо или плохо? Ну к примеру: define(\'GUI_LOGIN\',\'логин\'); define(\'GUI_PASSWORD\',\'пароль\'); define(\'GUI_PE_PESSWORD\',\'повтор пароля\'); и т.д. ?
Гриша 05.10.2011 10:11:54
Можно их срастить с MySql?
Гриша 05.10.2011 14:32:09
С их помощью соединить бд со скриптом?
Евгений 20.10.2011 23:40:18
Спасибо огромное вашему сайту каждій урок прохожу с удовольствием =)
Игорь 28.12.2011 08:23:49
Да уж, изложено действительно хорошо. Но единственно чего на мой взгляд (ИМХО) не хватает это практики. То есть, каждый сам может сидеть и практиковать в своих редакторах, так как ему в голову взбредет. Но нужна система практики. Где бы можно было бы попрактиковаться по пройденному материалу грамотно, применив эти знания и закрепив их. Подскажите какой-нибудь тренажер. Тем более, что практика это главные продуктивный инструмент программиста.
SETTER 28.12.2011 15:24:07
Совет первый. Не нужно использовать тренажёры. Пишите по чуть чуть то, что вам действительно пригодится или кому-то ещё. Исправление собственных ошибок и есть самый не заменимый тренажёр. Совет два. Не стоит пытаться объять не объятное (где-то уже вроде писал), используйте то что вы понимаете как использовать. Всё остальное само попросится в код, через какое-то время. Вы сами почувствует, что чего-то не хватает, тогда смело изучайте тот кусок знаний, который до сих пор был для вас не доступен. Проще сказать, пишите те скрипты, которые вы можете писать на данный момент, не надо их усложнять. Если вам не понятно где применять константы, не трогайте эту тему, поверьте, вы и без них напишите кучу хорошего кода.
Нурик 11.01.2012 15:20:19
Спасибо Огромнейшее автору. А то я уже расстроился что не потяну язык, столько вопросов было в начале изучения.
Kostya 29.04.2012 23:19:54
Автор, спасибо огромное за уроки
Lex 04.05.2012 12:17:05
автору спасибо. Все внятно и простым языком, тому кто писал на других языках - достаточно мельком все просмотреть. автор, пиши еще )
Иван 20.06.2012 06:11:08
Вот мы тут коментарии оставляем, а код дать можете мне он нужен. И еще когда продолжение будет?
gera 25.06.2012 19:06:42
Продолжение бы, а так супер
Alla Klimova 10.09.2012 12:03:08
урок отличный! Но не поняла одну вешь, почему ставится точка, ввыводе рисунка ставится одна точка перед IMGEVEVTS? В HTML либо дае точки, либо ни одной!
Crautcher 18.02.2013 10:28:44
Почему не использовать переменные вместо констант ?
Alex 01.01.2014 18:44:50
Супер!!! Спасиба!!! То что нужно именно сейчас... Легко понятно доступно....
  • Яндекс.Метрика Здесь находится аттестат нашего WM идентификатора 185571665285
  • "LPHPRU" © 2009-2021