그래서 문제를 해결하는 방법을 찾았지만 그 이유에 대해 궁금합니다. 그래서 여기재귀 무한 루프?
<?php
function test($attempt=1){
if ($attempt == 5){
echo "Done!";
}else{
echo 'recursion!';
test($attempt++);
}
}
$test = test();
지금이 코드 가 다음 다시 테스트를 실행 else 문에 가서 확인을 처음 실행해야 코드 블록 만 $ 시도 이번에는 ++ 결국 전까지는 5 ==한다 그 다음에 완료되고 완료됩니다. 그러나 이것은 효과가 없으며 영원히 반복됩니다. 그러나 함수를 입력 한 직후에 변수를 다른 변수에 할당하면이 문제를 해결할 수 있습니다.
<?php
function test($attempt=1){
$nextAttempt = $attempt+1;
if ($attempt == 5){
echo "Done!";
}else{
echo 'recursion!';
test($nextAttempt);
}
}
$test = test();
이유에 대한 의견이 있으십니까?
, 당신은 설정'$ 테스트 = 테스트()'() 테스트 '이후, 아무것도하지 않는 것을 깨닫게의'를 반환하지 않습니다 가치? –