> 백엔드 개발 > PHP 튜토리얼 > PHP에서 재귀 함수를 사용하여 숫자를 누적하는 방법

PHP에서 재귀 함수를 사용하여 숫자를 누적하는 방법

伊谢尔伦
풀어 주다: 2023-03-12 10:00:02
원래의
2006명이 탐색했습니다.

재귀 함수를 구현하는 방법은 무엇인가요? 재귀 함수를 사용하여 숫자를 추가하는 방법은 무엇입니까? 이 글에서는 주로 php 재귀함수의 세 가지 구현 방법과 디지털 축적 구현 방법을 소개합니다. 도움이 필요한 친구들이 참고할 수 있습니다.编 재귀 함수는 프로그래밍에서 비교적 일반적인 함수 유형입니다. 함수 자체가 자신을 호출할 수 있는 것이 특징이지만, 자신을 호출하기 전에

조건으로 판단해야 합니다. 그렇지 않으면 무제한 호출이 발생합니다. 이 글에서는 세 가지 재귀 함수 구현 방법을 나열합니다. 첫 번째는

references를 매개변수로 사용하고, 두 번째는 전역 변수를 사용하며, 세 번째는 static변수를 사용합니다. 이러한 문제를 이해하려면 전역 변수를 포함한 몇 가지 기본 지식이 필요합니다. 참조 및 정적 변수의 경우 해당 범위도 이해해야 합니다. 더 이상 헛소리는 하지 마세요. 자세한 소개는 아래를 참조하세요. 첫 번째 방법: 참조를 매개변수로 사용

참조가 매개변수인지 아닌지에 관계없이 먼저 참조가 무엇인지 이해해야 합니까? 참조는 단순히 이름이 다른 두 변수가 동일한 저장 주소를 가리키는 것을 의미합니다. 원래 각 변수에는 고유한 저장 주소가 있었고 할당과 삭제는 고유한 방식으로 진행되었습니다.

자, 이제 두 변수는 저장 주소를 공유합니다.

$a=&$b;

. 실제로 의미하는 바는

$a 가 원래 저장 주소와 관계없이 $b 와 방을 공유해야 한다는 것입니다. 따라서 저장된 주소 값을 변경하면 두 값 모두에 영향을 미칩니다. ​​ 이름이 같더라도 함수에는 고유한 작업 방식이 있습니다. 재귀 함수는 참조를 매개 변수로 사용하고 두 함수 간의 데이터 공유를 형성하는 브리지가 되는 것을 고려합니다. 두 함수는 서로 다른 주소에서 작동하는 것처럼 보이지만 실제로는 동일한 메모리 주소에서 작동합니다.

코드는 다음과 같습니다.

function test($a=0,&$result=array()){
$a++;
if ($a<10) {
    $result[]=$a;
    test($a,$result);
}
echo $a;
return $result;
}
로그인 후 복사

위의 예는 매우 간단합니다. 조건이 true이면 결과 참조를 함수에 전달하여

a<10

을 사용합니다. 각 재귀가 발생합니다. 결과 a는 결과 배열 결과에 추가됩니다. 따라서 이 예에서 생성된

$result 배열은 Array ([0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [ 5] => 6 [6] => 7 [7] => 8 [8] => 이 예에서 더 흥미로운 점은 echo a

값입니다. 많은 사람들이

12345678910이라고 생각하지만 실제로는 그렇지 않고 1098765432입니다. 왜? 함수가 echo a를 실행하기 전에 다음 함수 재귀를 수행했기 때문입니다. +                   $a, 등이 포함됩니다.

두 번째 방법: 전역 변수를 사용하세요전역 변수를 사용하여 재귀 함수를 완성하세요 전역 변수가 무엇인지 이해하세요. global함수 내에서 변수를 선언하는 것은 동일한 이름을 가진 외부 변수에 대한 참조일 뿐입니다. 변수의 범위는 여전히 이 함수의 범위 내에 있습니다. 이러한 변수의 값을 변경하면 자연스럽게 같은 이름을 가진 외부 변수의 값도 변경됩니다. 그러나 &을 사용하면 같은 이름의 변수는 더 이상 같은 이름의 참조가 아닙니다. 전역 변수를 사용하여 재귀 함수를 구현하는 데는 그렇게 깊은 수준을 이해할 필요가 없습니다. 전역 변수에 대한 원래의 관점을 유지하면 자연스럽게 재귀 함수를 이해할 수 있습니다. 코드는 다음과 같습니다.

function test($a=0,$result=array()){
    global $result;
    $a++;
    if ($a<10) {
        $result[]=$a;
        test($a,$result);
    }
    return $result;
}
로그인 후 복사

세 번째 방법: 정적 변수 사용

클래스에서 static을 자주 보는데 오늘은 재귀 함수에서 사용합니다. 정적의 역할을 기억하세요. 함수가 처음 호출될 때만 변수를 초기화하고 변수 값을 유지하세요.子 栗 栗 栗


코드는 다음과 같습니다.

function test(){
static $count=0;
echo $count;
$count++;
}
test();
test();
test();
test();
test();
로그인 후 복사
이 코드의 실행 결과는 무엇인가요? 00000
인가요? 확실히 그렇지 않습니다.

01234

입니다. 먼저 test(), static을 호출하여 $count 를 초기화합니다. 각 실행 후 $count 값은 유지되고 다시 초기화되지 않습니다. 이는 static을 직접 무시하는 것과 같습니다. $count= 0; 이 문장입니다.  그래서 재귀함수에 static을 적용한 효과를 상상할 수 있습니다. 재귀 함수 사이의 "브리지"로 사용해야 하는 변수를 초기화하려면 static을 사용하세요. 각 재귀는

"브리지 변수"

값을 유지합니다. 코드는 다음과 같습니다

function test($a=0){
    static $result=array();
    $a++;
    if ($a<10) {
        $result[]=$a;
        test($a);
    }
    return $result;
}
로그인 후 복사
요약

  所谓递归函数,重点是如何处理函数调用自身是如何保证所需要的结果得以在函数间合理"传递",当然也有不需要函数之间传值得递归函数,例如:

代码如下:

function test($a=0){
    $a++;
    if ($a<10) {
        echo $a;
        test($a);
    }
}
로그인 후 복사

下面通过一段代码演示一下php使用递归函数实现数字累加的方法。

代码如下所示:

代码如下:

<?php
function summation ($count) {
   if ($count != 0) :
     return $count + summation($count-1);
   endif;
}
$sum = summation(10);
print "Summation = $sum";
?>
로그인 후 복사

      

위 내용은 PHP에서 재귀 함수를 사용하여 숫자를 누적하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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