Возврат по умолчанию

Рассмотрим немного модифицированную функцию из предыдущего урока:

<?php

function sub($a, $b)
{
    // Полученный результат никак не используется
    // и не возвращается наружу
    $output = $a - $b;
}

$result = sub(10, 7);
print_r($result);
var_dump($result); // => NULL

Несмотря на отсутствие return внутри функции sub(), в переменную $result будет что-то записано. Это специальный тип данных null. Он используется в ситуациях, когда значение чего-либо не определено. У этого типа данных есть единственное значение – NULL. Это специальное значение невозможно вывести на экран привычной функцией print_r(). Чтобы увидеть null, нужно воспользоваться другой функцией – var_dump().

Вызов функции – выражение, а выражения всегда возвращают результат своего выполнения. Это стандартное поведение функций в PHP, оно существует не просто так.

Но, конечно, смысла в этой программе нет — функция сейчас не делает ничего полезного. Добавим return и вернём $output:

<?php

function sub($a, $b)
{
    $output = $a - $b;
    return $output;
}

$result = sub(10, 7);
print_r($result); // => 3

Теперь всё работает как надо.

Забыть инструкцию return — частая ошибка новичка. Мы в обучении каждый день сталкиваемся с просьбами о помощи типа «функция правильная, но почему-то не работает». И почти всегда оказывается, что забыт return.

С другой стороны, если написать инструкцию return без указания выражения после него, то наружу вернется все тот же NULL. Кажется, что подобный возврат не имеет смысла, но это не так. return без выражения нередко используют для прерывания вычислений. Подробнее эта тема раскрывается в модуле, посвященному условным конструкциям.

Кстати, вы можете сами написать return null в теле функции. Функция будет возвращать NULL, как если бы в ней не было return.

Задание

Это немного странное задание, но для тренировки будет полезным. Реализуйте функцию getNull(), которая просто возвращает null и больше ничего не делает.

Вам не нужно вызывать свою функцию, только определить её.


Нашли ошибку? Есть что добавить? Пулреквесты приветствуются https://github.com/hexlet-basics
Если вы столкнулись с трудностями и не знаете, что делать, задайте вопрос в нашем большом и дружном cообществе
Упражнение доступно только авторизованным пользователям.

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