Так что я столкнулся с проблемой, которую я понял, как исправить, но мне очень любопытно, почему. Так вот блок кодаРекурсия бесконечного цикла?
<?php
function test($attempt=1){
if ($attempt == 5){
echo "Done!";
}else{
echo 'recursion!';
test($attempt++);
}
}
$test = test();
Теперь этот код должен запустить первый раз, проверьте, перейдите в отчет еще затем запустить тест еще раз, но на этот раз с $ попытки ++, пока в конце концов не будет == до 5 и затем он будет повторяться и завершаться. Однако это не сработает, и он навсегда зацикливается. Однако она может быть исправлена путем присвоения переменной в другой переменной сразу же после входа в функцию, как так
<?php
function test($attempt=1){
$nextAttempt = $attempt+1;
if ($attempt == 5){
echo "Done!";
}else{
echo 'recursion!';
test($nextAttempt);
}
}
$test = test();
Любые идеи, почему это?
Кроме того, вы понимаете, что установка '$ тест = тест()' ничего не делает, так как 'тест()' не возвращают ценность, правильно? –