>백엔드 개발 >PHP 문제 >PHP 재귀 함수를 배우는 방법을 단계별로 가르쳐주세요.

PHP 재귀 함수를 배우는 방법을 단계별로 가르쳐주세요.

醉折花枝作酒筹
醉折花枝作酒筹원래의
2021-03-23 09:45:282044검색

재귀는 함수가 함수 본문 내에서 자신을 호출하는 것입니다. 재귀 함수를 실행하면 자신을 반복적으로 호출하여 매번 새로운 수준으로 들어갑니다. 재귀 함수에는 종료 조건이 있어야 합니다. 재귀를 배우기 위해 편집기를 따라 갑시다.

PHP 재귀 함수를 배우는 방법을 단계별로 가르쳐주세요.

재귀의 개념은 상대적으로 복잡한 문제(원래 문제)를 원래 문제와 유사한 소규모 문제(하위 문제)로 변환하여 해결하는 것입니다. 문제는 자연스럽게 해결될 것이다. 재귀적 방법은 문제 해결 과정에서 요구되는 여러 번의 반복 계산을 기술하기 위해 적은 양의 프로그램만 필요하므로 프로그램 코드의 양을 크게 줄입니다. 물론 재귀 함수는 완벽하지 않으며 특정 단점이 있습니다. 즉, 재귀 함수가 효율적으로 작동하지 않습니다.
PHP의 재귀 수준 수는 무제한이 아닙니다. 이는 프로그램의 메모리 제한인 PHP5允许一个程序使用128M的内存,因此当递归层数过大导致128M内存耗尽时,程序就会产生一个致命错误并退出。PHP7允许使用256M메모리와 관련이 있습니다.

재귀 함수는 함수 내부에서 자신을 호출하는 것입니다. 재귀 함수를 실행하면 자신을 반복적으로 호출하여 매번 새로운 수준으로 들어갑니다. 재귀 함수에는 종료 조건이 있어야 합니다. 함수가 벽을 만나고 돌아올 때까지 계속 반복되면 벽이 종료 조건입니다. 따라서 재귀에는 종료 조건과 재귀 관계라는 두 가지 요소가 있어야 합니다.

참고: 함수가 호출되어 실행되면 메모리에 임시 데이터를 저장할 공간이 할당되므로 실행 중에는 기본적으로 함수 간 연결이 없습니다(정적 변수, 참조에 의한 전달 및 전역 변수 제외). ). 내부 변수는 기본적으로 모두 지역 변수이며 서로 영향을 미치지 않습니다. 좀 더 깊은 인상을 주기 위해 예를 들어보겠습니다.

<?php
    function demo($num){
        //
        if($num == 1 || $num == 2){
            return 1;
        }else{
            return demo($num - 1) + demo($num - 2);
        }
    }

    echo &#39;数列第 10 位是:&#39;.demo(10);//数列第 10 位是:55
?>

이 예가 친숙해 보이죠? 피보나치 수열을 계산할 때 다른 방법을 사용하는 것은 여전히 ​​상대적으로 어렵습니다. 더 효율적입니다.

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

위 내용은 PHP 재귀 함수를 배우는 방법을 단계별로 가르쳐주세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.