recursion — объяснить рекурсивную функцию со статической переменной Stack Overflow

Пожалуйста, помогите мне понять этот пример?
Почему он печатает «10» десять раз? Почему бы не 0 1 2 3 4 5 6 7 8 9?

<?php
function test()
{
static $count = 0;
$count++;
if ($count < 10) {
test();
}
echo "\n$count";
}
test();

1

Решение

Если он меньше 10, он повторяется и не выводится, когда он равен 10, он падает до echo и печатает 10 для 10 раз, которые он повторял, когда он выходит каждый раз.

если ты echo перед повторением это будет работать, как вы описали. Кроме того, вам нужно вывести, прежде чем увеличивать, иначе вы не получите 0:

function test()
{
static $count = 0;
echo "\n$count";

$count++;
if ($count < 10) {
test();
}

}
test();
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]