В этом уроке мы подробнее поговорим об окружении, но для начала ответим на один вопрос. Посмотрите на фрагмент кода ниже и подумайте, какое значение окажется внутри переменной $result
после выполнения:
<?php
$age = 5;
function generate()
{
return $age + 3;
}
$result = generate();
Правильный ответ — код упадет с ошибкой, потому что внутри функции нет переменной с именем $age
, но функция пытается ее использовать.
Функция изолирована от внешних переменных. Все переменные, определенные снаружи функции, никак не связаны с переменными, определенными внутри. В теле функции находится программа, изолированная от внешней среды (внешнего окружения):
Рассмотрим еще один пример:
<?php
$age = 5;
function changeAge()
{
$age = 8;
}
changeAge();
print_r($age); // => 5
Переменная, созданная внутри функции changeAge()
, никак не влияет на внешнюю переменную $age
. Поэтому после вызова функции значение внешней $age
не изменилось — оно осталось равным 5
.
Константы
Напомним, что в PHP данные можно хранить в константах. Область видимости констант и переменных отличается. Объявленные в файле константы доступны в теле функции. Перепишем первый пример с использованием константы:
<?php
const AGE = 5;
function generate()
{
return AGE + 3;
}
$result = generate();
print_r($result); // => 8
Значение AGE
оказалось доступно и программа успешно выполнила вычисления.
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты