> 백엔드 개발 > PHP 문제 > PHP에서 재귀 함수는 무엇을 의미합니까?

PHP에서 재귀 함수는 무엇을 의미합니까?

青灯夜游
풀어 주다: 2023-03-16 09:32:01
원래의
2258명이 탐색했습니다.

PHP에서 재귀 함수는 자체 호출 함수를 의미합니다. 즉, 재귀 함수를 사용할 때 함수 본문 내에서 함수가 직접 또는 간접적으로 자신을 호출하는 경우 판단 조건을 함수 본문에 추가해야 합니다. 계속해야 하는지 여부. 재귀 호출을 수행하고 조건이 충족되면 함수의 재귀 호출을 종료합니다.

PHP에서 재귀 함수는 무엇을 의미합니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터

재귀 함수는 자체 호출 함수입니다. 즉, 함수는 함수 본문 내에서 직접 또는 간접적으로 자신을 호출합니다. . 재귀 함수를 사용할 때 일반적으로 함수 본문에 재귀 호출을 계속해야 하는지 여부를 결정하는 판단 조건이 첨부되어 조건이 충족되면 함수의 재귀 호출이 종료된다는 점에 유의해야 합니다.

재귀 함수의 가장 큰 장점은 프로그램에서 복잡하고 반복적인 절차를 단순화할 수 있으며, 이 기능을 사용하여 좀 더 복잡한 작업을 수행할 수 있다는 것입니다. 예를 들어 목록, 동적 트리 메뉴, 디렉터리 탐색과 같은 작업이 있습니다. 해당 비재귀 함수는 효율적이지만 프로그래밍하기 어렵고 상대적으로 읽을 수 없습니다.

재귀적 사고

재귀의 주요 아이디어는 상대적으로 복잡한 문제(원래 문제)를 원래 문제와 유사한 소규모 문제(하위 문제)로 변환하여 해결하고 하나씩 기다리는 것입니다. 하나 작은 문제가 해결되면 큰 문제도 결국 해결될 것입니다.

재귀적 방법은 문제 해결 과정에서 요구되는 여러 번의 반복 계산을 기술하기 위해 적은 양의 프로그램만 필요하므로 프로그램의 코드 양을 크게 줄입니다. 물론 재귀 함수는 완벽하지 않으며 특정 단점도 있습니다. 즉, 재귀 메서드 함수가 효율적으로 작동하지 않는다는 것입니다.

PHP의 최대 재귀 수준 수는 무제한이 아닙니다. 이는 프로그램의 메모리 제한과 관련이 있습니다. 따라서 PHP5에서는 프로그램이 기본적으로 128M의 메모리를 사용할 수 있습니다. 메모리가 모두 소모되면 프로그램은 치명적인 오류를 생성하고 종료됩니다. PHP7은 기본적으로 256M의 메모리를 허용합니다.

PHP에서 허용하는 최대 메모리는 아래와 같이 php.ini 파일을 수정하여 수정할 수 있습니다.

; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit=256M
로그인 후 복사

PHP의 재귀

재귀를 구현하려면 다음 두 가지 조건을 충족해야 합니다.

  • 하위 문제는 원래 문제와 동일해야 하지만 더 단순해야 합니다.

  • 자신을 무제한으로 호출할 수 없으며, 비재귀적 상황 처리를 단순화하는 출구가 있어야 합니다.

예 1: 재귀 함수를 사용하여 n의 계승을 구현합니다!

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);   
function factorial($num){
    //确定递归函数的出口
    if($num == 1){
        return 1;
    }else{
        return $num*factorial($num - 1);
    }
}
echo &#39;15 的阶乘是:&#39;.factorial(15);
?>
로그인 후 복사

실행 결과는 다음과 같습니다.

PHP에서 재귀 함수는 무엇을 의미합니까?

예 2: 피보나치 수열을 계산합니다.

피보나치 수열은 다음과 같습니다.

1, 1, 2, 3, 5, 8, 13, 21, 34,...

구현 코드는 다음과 같습니다.

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);   
function demo($num){
    //
    if($num == 1 || $num == 2){
        return 1;
    }else{
        return demo($num - 1) + demo($num - 2);
    }
}
echo &#39;数列第 10 位是:&#39;.demo(10);
?>
로그인 후 복사

실행 결과는 다음과 같습니다. :

PHP에서 재귀 함수는 무엇을 의미합니까?

추천 학습: "PHP 비디오 튜토리얼"

위 내용은 PHP에서 재귀 함수는 무엇을 의미합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿