Окружение

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

  $actual = getAgeDifference(2001, 2018);
  print_r($actual); // => 17

Советы

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


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

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

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