Константы в PHP
http://belarusweb.net
Основы создания сайтов

Константы в PHP

Понятие константы в PHP

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

Объявление константы при помощи функции define()

Для создания констант используется функция 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

Также константы можно создавать при помощи ключевого слова 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 в ходе проектирования, верстки и управления сайтами.