@Bodya_idiot

Почему return не возвращает значение?

Вопрос такой, почему return не возвращает результат.
Пример :
<?php

$a = 1;
function test($a) 
{
    if($a == 5) {
        return 'не возвращает значение';
    } else {
        $a += 1; 
        echo $a . '<br>'; // Это для проверки
        test($a);  // Пользуюсь рекурсией, но уже беру  $a с новым значением  
    }
}
$a = test($a);
echo $a;  // он должен выводить 5 но он ничего не выводит
  • Вопрос задан
  • 734 просмотра
Решения вопроса 1
bitniks
@bitniks
Go/PHP/Symfony developer
Потому что значение функции test не возвращается при рекурсивном вызове. Должно быть так
<?php
function test($a) 
{
    if($a === 5) {
        return 'не возвращает значение';
    }
    
   return test($a + 1);    // Здесь нужен return 
}

echo test(1);

sandbox.onlinephpfunctions.com/code/3473fa114823e1...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
return test($a); // Пользуюсь рекурсией, но уже беру $a с новым значением
Ответ написан
Комментировать
@anna_makeenko
echo — Выводит одну или более строк

https://www.php.net/manual/ru/function.echo.php

return возвращает управление программой модулю, из которого была вызвана функция. Выполнение программы продолжается с инструкции, следующей за местом вызова.

https://www.php.net/manual/ru/function.return.php

Улавливаешь разницу?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы