재귀 함수는 자신을 직접 호출하거나 함수 본문에서 직접 호출하지만, 조건이 충족되면 함수 자체가 호출됩니다. 그렇지 않으면 이 함수의 자체 호출이 중지됩니다. 그러면 현재 프로세스의 제어가 상위 계층 함수로 반환되어 실행됩니다. 이렇게 설명하면 여전히 이해하기 어려울 수 있습니다.
예를 들어 다음 코드를 사용합니다.
function test ($n){ echo $n." "; if($n>0){ test($n-1); }else{ echo ""; } echo $n." " } test(2)
이 예제의 최종 출력 결과는 2 1 05fb6f3beb31540706eb26a1cd1069f9d0 1 2
출력이 이와 같은 이유를 설명하겠습니다
첫 번째 단계는 다음과 같습니다. test(2)를 실행하려면 echo 2를 실행하고 2>0이므로 test(1)을 실행하면 아직 실행할 시간이 없는 echo 2가 있습니다. 두 번째 단계는 test(1)을 실행하고 echo 1을 실행하는 것입니다. 1>0이므로 test(0)을 실행합니다. 마찬가지로 실행할 시간이 없는 echo 1이 있습니다. 세 번째 단계는 test(0), echo 0, test(0) 실행, echo 0입니다. 이번에는 0>0 조건을 만족하지 않아 test() 함수가 실행되지 않았으나 echo "" 이고 다음 echo 0 이 실행됩니다
이제 함수는 더 이상 자신을 호출하지 않고 실행을 위해 프로세스의 제어를 상위 레이어 함수로 반환합니다. 즉, 지금 모든 test()를 실행하기 시작합니다. 함수는 마지막 에코를 출력할 시간이 없었습니다. 0 위의 레이어는 1입니다. 출력 1. 1 위의 레이어는 2입니다. 이는 2를 출력한다는 의미입니다. 2에는 레이어가 없으므로 출력 내용은 2 1 05fb6f3beb31540706eb26a1cd1069f9d0 1 2
관련 읽기:
php 재귀 알고리즘php 재귀 알고리즘: php 재귀 알고리즘 PHP 트리 - 재귀가 필요하지 않음: /*** 상위 노드 트리 만들기
arrayphp 재귀 알고리즘 일반적으로 사용되는 알고리즘 PHP 인터뷰php 재귀 알고리즘:php 재귀 알고리즘 PHP 인터뷰의 일반적인 알고리즘...
PHP WeChat 빨간 봉투를 기반으로 한 PHP 재귀 알고리즘 알고리즘 토론php 재귀 알고리즘: PHP WeChat 빨간 봉투를 기반으로 한 PHP 재귀 알고리즘 알고리즘 토론: 저는 임의로 빨간 봉투를 동문 위챗 그룹에 보냈고, 빨간 봉투의 총액을 10위안으로 설정했고, 무작위로 28명이 받을 수 있도록 지원했습니다. ...
위 내용은 PHP 재귀 알고리즘이 단순화되었습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!