Задать вопрос

Php функция не возвращает значение?

Есть код примерно такого содержания. Вопрос: почему функция не возвращает занчение в переменную, т.е она NULL
<?php
function test($a, $b) {
    if ($a == 0) {
        //сюда попадает
        return $b;
    }
    //code
$a--;
    test($a, $b);    
}
$t = test(3,5);
save($t); //t == null
echo $t; // null выводит, хотя в if заходит


Что-то понять не могу в чем проблема.

Конечно есть еще вариант по ссылке передать значение, но в чем проблема в данном примере?
  • Вопрос задан
  • 1031 просмотр
Подписаться 2 Оценить Комментировать
Решения вопроса 1
Stalker_RED
@Stalker_RED
Почему вы решили что у вас срабатывает условие "сюда поподает"?
На самом деле вы бесконечно вызываете test(3, 5), и переменная $a никогда не становится равной нулю.

Конечно, я могу только догадываться, но похоже, что вы хотели сделать test(--$a, $b).
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
hummingbird
@hummingbird
Вообще какой-то бред вы написали.

Вы точно понимаете, что вы пишите? Прочитайте про функции и передаваемые им параметры - php.net/manual/ru/functions.arguments.php
Ответ написан
Antiless
@Antiless
test($a--, $b);

замените на
return test(--$a, $b);
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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