Помогите разобраться с рекурсией в PHP
Функция должна выводить числа от 1 до 10 с помощью рекурсии (по заверениям Дмитрия Трепачёва), потому как указана простейшим примером на котором он разбирает эту самую рекурсию, но у меня она почему-то только ломает сэндбокс и не работает.
Помогите разобраться, пожалуйста.
$i = 1;
function func() {
echo $i;
$i++;
if ($i <= 10){
func(); // здесь функция вызывает сама себя
}
}
func();
Ответы (1 шт):
Если закомментировать func(); в условии if то можно будет увидеть предупреждение
Warning: Undefined variable $i in /home/user/scripts/code.php on line 6
Поэтому код выполняется бесконечно. Код неявно преобразовывает переменную в 0 при операции инкрементирования. И поэтому условие всегда истино (получается 1<=10). Чтобы переменная была определена из глобальной области, нужно в функции её подключить:
function func(){
global $i; // <--------
...
...
}