Окружение

Какое значение окажется внутри переменной $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.

Задание

Это задание не связано напрямую с уроком, это просто еще одно полезное упражнение по работе с функциями.

Напишите функцию getAgeDifference, которая принимает два года рождения и возвращает строку с разницей в возрасте в виде The age difference is 11.


Советы

  • Напомним, что в PHP есть функция abs, которая возвращает модуль переданного числа: например, abs(-12) вернёт 12.


Нашли ошибку? Есть что добавить? Пулреквесты приветствуютсяhttps://github.com/hexlet-basics

Упражнение доступно только авторизованным пользователям.

Пожалуйста, авторизуйтесь, это необходимо для отслеживания прогресса выполнения уроков. Если у вас ещё нет учётной записи, то сейчас самое время создать аккаунт.