Задать вопрос
@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 но он ничего не выводит
  • Вопрос задан
  • 747 просмотров
Подписаться 1 Простой 1 комментарий
Решение пользователя Евгений Самсонов К ответам на вопрос (3)
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...
Ответ написан
Комментировать