Возврат значений return

Тренажер по PHP для пользователей с начальным уровнем подготовки.

Тренажер PHP

До этого мы рассматривали функции как исполнителей, которые что-то делают: выводят текст, изменяют переменные. Но их истинная сила раскрывается, когда они не только выполняют работу, но и возвращают результат. В этом уроке мы погрузимся в мир оператора `return`. Вы узнаете, как "попросить" функцию отдать вам итог своей работы — будь то число, строка, массив или просто логическое `true`/`false`. Мы разберемся, почему `return` — это не то же самое, что `echo`, и почему код после `return` перестает выполняться. Также мы научимся делать наш код надежнее, объявляя, какой именно тип данных должна вернуть функция. Эти знания — ключ к созданию сложных и взаимодействующих друг с другом программ.

Список тем

1. Простейший возврат значения

id: 38986_task_replace_1

Завершите функцию `square`, которая должна вычислять квадрат числа. Вместо того чтобы выводить результат на экран, она должна "вернуть" его, чтобы его можно было использовать дальше в коде.

Заполните пропуски
<?php
function square($number) {
    $result = $number * $number;
    input1S input2S;
}

$myNumber = 5;
$squaredNumber = square($myNumber);
echo "Квадрат числа $myNumber равен " . $squaredNumber;
?>
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

2. Использование возвращенного значения

id: 38986_task_error_1

Функция `getWelcomeMessage` создает и возвращает приветственное сообщение. Однако при попытке вывести это сообщение на экран, код пытается обратиться к переменной, которая существует только внутри функции, что вызывает ошибку. Исправьте строку с `echo`.

Найдите ошибку и исправьте
<?php
function getWelcomeMessage() {
    $message = "Добро пожаловать!";
    return $message;
}
 
$welcomeMsg = getWelcomeMessage();
echo $message;
?>
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

3. Что произойдет после return?

id: 38986_task_predict_1

Оператор `return` не только возвращает значение, но и немедленно прекращает выполнение функции. Проанализируйте код и выберите, что именно будет выведено на экран.

Выберите правильный вариант ответа
<?php
function getStatus() {
    return "Complete";
    echo "Processing..."; // Этот код недостижим
}

echo getStatus();
?>
Сообщения
Проверить
Показать подсказку

4. Что вернет функция без return?

id: 38986_task_give_result_1

Если в функции нет явного оператора `return`, что она вернет по умолчанию? Посмотрите на код, который использует `var_dump` для анализа результата вызова такой функции, и впишите в поле ответа то, что выведет `var_dump`.

Что должно получиться?
<?php
function logAction($action) {
    // Эта функция только выводит лог, но ничего не возвращает
    echo "Action logged: $action";
}

$result = logAction("User login");
var_dump($result);
?>
Сообщения
Проверить
Показать подсказку

5. Соберите функцию с условием

id: 38986_task_bfp_1

Соберите из фрагментов функцию `checkNumber`, которая проверяет число. Если число положительное, она должна вернуть строку "Positive", в противном случае — "Negative or Zero".

Перетяните в правильном порядке строки из одного блока в другой
return "Positive";
if ($num > 0) {
}
function checkNumber($num) {
return "Negative or Zero";
}
echo "Positive";
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

6. Объявление типа возвращаемого значения

id: 38986_task_replace_2

Чтобы сделать код более надежным, можно указать, какой тип данных должна возвращать функция. Дополните объявление функции `calculateTotal`, чтобы она гарантированно возвращала число с плавающей точкой (`float`).

Заполните пропуски
<?php
declare(strict_types=1);

function calculateTotal(float $price, int $quantity) input1S {
    return $price * $quantity;
}

$total = calculateTotal(9.99, 3);
echo "Итого: " . $total;
?>
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

7. Несоответствие типа возврата

id: 38986_task_error_2

Функция `getAge` объявлена с типом возврата `int`, что означает, что она должна вернуть целое число. Однако сейчас она возвращает строку, что вызовет ошибку `TypeError`. Исправьте возвращаемое значение, чтобы оно соответствовало объявленному типу.

Найдите ошибку и исправьте
<?php
declare(strict_types=1);
 
function getAge(): int {
    return "25";
}
 
echo getAge();
?>
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

8. Возврат нескольких значений через массив

id: 38986_task_bank_1

Чтобы вернуть из функции несколько значений, их обычно упаковывают в массив. Завершите функцию `getCoordinates`, чтобы она возвращала массив с двумя элементами: широтой (`lat`) и долготой (`lng`). Используйте токены из банка.

Нужно правильно расставить в пропуски предложенные варианты
<?php
function getCoordinates(): array {
    $lat = 55.7558;
    $lng = 37.6173;
    
    return [input1S, input2S];
}

$coords = getCoordinates();
print_r($coords);
?>
$lng
return
$lat
array($lat, $lng)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

9. Возврат void

id: 38986_task_predict_2

Тип возврата `: void` означает, что функция не должна возвращать никакого значения. Что выведет `var_dump`, если попытаться получить результат вызова такой функции? Обратите внимание, что сама функция при этом тоже что-то выводит.

Выберите правильный вариант ответа
<?php
function displayStatus(string $status): void {
    echo "Status: $status";
}

$result = displayStatus("OK");
var_dump($result);
?>
Сообщения
Проверить
Показать подсказку

PHP: запуск кода в браузере

id: 38986_compiler
🐘
Запустить тренажёр (PHP)
НайтиКурс.Ру