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

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

<?php

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

$result = sub(10, 7);
print_r($result);

Этот код не содержит синтаксических ошибок, и интерпретатор выполнит его. Но на экран ничего не выведется! В функции нет return, но не смотря на это, код отработал и в переменную $result записалось что-то.

Держитесь, мы снова повторяем мантру: вызов функции — это выражение. Значит, функция всегда возвращает что-то.

Во многих языках программирования есть специальный тип данных с единственным значением: null. Он используется в ситуациях, когда значение чего-либо не определено.

Так вот, если в функции нет инструкции return, то интерпретатор автоматически возвращает null. Поэтому в переменную $result записался null.

Почему же тогда null не вывелся на экран? Это специальное значение невозможно вывести на экран привычной функцией print_r. Чтобы увидеть null, нужно воспользоваться другой функцией: var_dump.

<?php

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

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

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

<?php

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

$result = sub(10, 7);
print_r($result);

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

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

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

Задание

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

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

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