belarusweb.net
© Петр Романовский Минск, 2016-2017.



belarusweb.net

Основы создания сайтов...

PHP+MySQL >>>

                          Учебник Задачник Справочник

1.6. Понятие константы

Иногда нет необходимости использовать для хранения значения переменную, поскольку требуется сохранять это значение постоянным на протяжении всего выполнения скрипта. В таких случаях используются константы, которые представляют собою именованные контейнеры для хранения неизменяемых (постоянных) значений. Имена констант должны соответствовать общим правилам, установленным для идентификаторов в PHP. Однако по принятому соглашению, имена констант принято писать в верхнем регистре, хотя разрешается применять имена в любом регистре.

Для создания констант используется функция define(), которая в качестве своих аргументов принимает имя константы в кавычках и ее значение. Отметим, что константы, определяемые при помощи функции define(), создаются после компиляции скрипта (т.е. после перевода php-кода в машинный код) уже на стадии его выполнения, и поэтому могут быть определены в любой области видимости (см пример. 1.14). После того, как константа будет определена, к ней можно обращаться по имени, но в отличие от переменных, знак доллара у констант не ставится. Поэтому нужно быть внимательным при выборе имени константы, чтобы оно не совпало с одним из зарезервированных PHP слов.

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

<?php	
define('a', 23); 		   //Теперь a==23. Отметим, что имя константы всегда берется  
							   //в кавычки,а значение только, когда является строкой
echo a, '<br>';     	   //Выведет '23'

//define('a', 'apple'); //Вызовет ошибку, т.к. переопределить значение 
					         //константы уже нельзя

define('first_name', 'Ivan');  //Теперь first_name=='Ivan'. Взяли значение  
										 //константы в кавычки, т.к. оно является строкой						
echo first_name, '<br>'; 		 //Выведет 'Ivan'
?>

Пример 1.14. Создание констант при помощи функции define()

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

<?php	
const a=23;  		  //Теперь a==23. Отметим, что имя константы всегда берется  
						  //в кавычки,а значение только, когда является строкой
echo a, '<br>';     //Выведет '23'

//const a='apple';  //Вызовет ошибку, т.к. переопределить значение 
						  //константы уже нельзя

const first_name='Ivan';  	//Теперь first_name=='Ivan'. Взяли значение  
									//константы в кавычки, т.к. оно является строкой						
echo first_name, '<br>'; 	//Выведет 'Ivan'

function my_func(){ 			//Определяем функцию
	//const c=10;				//Интерпретатор сообщит об ошибке
}

if(a==23){						//Условный оператор if (рассмотрим позже)
	//const b=10;				//Интерпретатор сообщит об ошибке
}
/* Проверьте в браузере, закомментировав часть кода и выводя его поочередно */
?>

Пример 1.15. Создание констант при помощи ключевого слова const

На этом вводную часть мы заканчиваем. Далее до конца первой части мы рассмотрим основы синтаксиса PHP, включающего понятия типов данных, операторов, функций, классов и объектов и т.д. Вторая часть будет посвящена вопросам практического применения PHP в ходе проектирования, верстки и управления сайтами.

Контрольные вопросы и задания

  1. Для чего применяются константы? Как они создаются?
  2. Где можно создавать константы при помощи ключевого слова const?

Словарь новых английских слов

brackets [ˈbrækəts] – скобки.
square [skwɛː] – квадрат, квадратный.
angle [ˈæŋɡl] – угол, угловой.
curly [ˈkəːli] – фигурный, изогнутый, волнистый.
round [raʊnd] – круглый.
preprocessor [ˌpriːˈprəʊsɛsə] – предпроцессор.
hypertext [ˈhaɪpərtekst] – гипертекст.
camel [ˈkam(ə)l] – верблюд.
case [keɪs] – регистр клавиатуры.
try [traɪ] – пытаться, попытка.
catch [kætʃ] – поймать, захват.
snake [sneɪk] – змея, извиваться.
if [ɪf] – если.
global [ˈɡloʊbl] – глобальный, всеобщий.
local [ˈləʊk(ə)l] – локальный, местный.
static [ˈstætɪk] – статический, неподвижный.
define [dɪˈfʌɪn] – определять.
constant [ˈkɑːnstənt] – константа, постоянная.
echo [ˈekoʊ] – вторить, повторять, эхо.
unset [ʌnˈsɛt] – сбросить, удалить (переменную).
Комментарии (0)
Петр Романовский
1. Приветствуются комментарии, которые содержат дополнения к материалу текущей страницы, а также ваши ответы на вопросы других пользователей.
2. Если вам что-то непонятно - спрашивайте, не забывая написать, что именно и с какого места.
Показаны все комментарии
Чтобы оставить свой комментарий, авторизуйтесь, пожалуйста!    
     
belarusweb.net © Петр Романовский, Минск, 2016-2017.
Связаться с автором
Наверх