• Теория
  • Теория

Функция возвращает значение

Мы научились передавать функции аргументы, считать итоговую цену товара и выводить её в консоль. Но что будет, если вызвать функцию get_final_price в шаблоне?

<td><?= get_final_price(1000, 200) ?></td>

В консоли появятся новые сообщения, но в мини-браузере итоговая цена не отобразится, потому что команда keks_log выводит сообщение в консоль, но не на страницу. Чтобы итоговая цена появилась на странице, функция get_final_price должна её вернуть.

Функции могут не только принимать данные, но и возвращать их. Представьте, что мы задаём функции вопрос, а она на него отвечает. Чтобы указать, что именно функция должна ответить, или какое значение вернуть, используют ключевое слово return:

function my_func($number_1, $number_2) {
  return $number_1 - $number_2;
}

Когда функцию вызовут, на её место в коде подставится то значение, которое она вернёт:

<!-- Вызываем функцию в шаблоне -->
<p><?= my_func(3, 1) ?></p>

<!-- Результат  -->
<p>2</p>

Вернув значение, функция прекратит работу. Последующий код в теле функции PHP проигнорирует.

function my_func($number_1, $number_2) {
  return $number_1 - $number_2;

  // Код на следующей строке никогда не будет исполнен
  keks_log('Есть ли жизнь после return?');
}

Функция может ничего не возвращать или вернуть одно любое значение: число, строку, массив и так далее.

Итак, нам нужно вывести на страницу итоговую цену товара. Укажем, что функция get_final_price возвращает разницу между полной ценой и скидкой на товар. После этого вызовем функцию в шаблоне components/delivery_info.php. Используем для вставки PHP-кода краткую запись:

<?= my_func(3, 1) ?>
Минимальный вид табов
  • index.html
HTML
HTML

Вы перешли на другую страницу

Кликните внутри мини-браузера, чтобы поставить фокус в это окно.

100%
Бабушка Кекс

Притормози, дружище

Проходить вызовы части «Массивы и функции в PHP» тренажёра «Знакомство с PHP» можно после регистрации и оформления подписки.