Урок 5 из 29
В прогрессе

5php Константы

Константы в PHP — это «постоянные», значения которых указывается всего один раз и затем не может быть изменено. При попытке изменить значение, оно не изменится и появится PHP заметка: «Constant already defined» (константа уже определена):

 

<?php error_reporting(-1);

define(«FOO», «val»);

define(‘FOOO’,’val2′);

echo FOO;


Объявлять константы в PHP можно двумя способами:

// 1 define( ‘NAME’, ‘VALUE’ );

// 2 const NAME = ‘VALUE’;


Разница между define() и const

#1 const должны быть объявлены в верхней области

Потому что они определяются при компилировании скрипта. Это значит, что const нельзя использовать внутри функций/циклов/выражений if или try/catch блоков.

if ( 1 ) {
	const NAME = 'VALUE';  // не работает
}
// но
if ( 1 ) {
	define('NAME', 'VALUE');  // работает
}

#2 const всегда регистрозависима

В то время как define() позволяет создать регистро-независимые константы:

define( 'NAME', 'VALUE', true );
echo NAME; // VALUE
echo name; // VALUE

#3 const понимает только скаляры

const нельзя передать переменные, функции, выражения, а define() можно:

const FOO = $var;       // Parse error
const FOO = home_url(); // Parse error

define('FOO', $var );        // нет ошибок
define('FOO', home_url() );  // нет ошибок


вводить в кавычках константу мы тоже не можем

const NAME = «John»;

echo «hello NAME»;

echo «hello » . NAME;


Предопределённые переменные КЛИК

<?php error_reporting(-1);

$this= «Alex»;

echo $this ;


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

get_defined_constants — Возвращает ассоциативный массив с именами всех констант и их значений

 

<?php
define(«MY_CONSTANT», 1);
print_r(get_defined_constants(true));
?>