PHP 재 귀 를 실현 하 는 세 가지 방법
일반적으로 귀속 함 수 는 전역 변수,인용,정적 변 수 를 이용 할 수 있 으 나 그들의 역할 범위 에 대해 이해 해 야 한다.재 귀 함수 도 무한 급 분 류 를 해결 하 는 좋 은 기교 이다.
1.인용 을 매개 변수 로 한다.
PHP 의 인용 은 같은 내용 을 두 변수 로 가리 킬 수 있 습 니 다.예 를 들 어$a=&$b;이것 은$a 와$b 가 같은 변 수 를 가리 키 는 것 을 의미 합 니 다.
다음 예 는$data 가 인용 전달 을 사 용 했 기 때문에 데 이 터 는 계속 누적 된다.
function recursion(&$data = [], $i = 0)
{
if ($i < 10) {
$data[] = $i;
$i++;
$this->recursion($data, $i);
}
return $data;
}
//
$this->recursion(); // [0,1,2,3,4,5,6,7,8,9]
2.전역 변 수 를 이용 하여global 은 함수 내 에서 변 수 는 외부 변수의 동명 인용 에 불과 하 다 고 밝 혔 다.변수의 작용 범 위 는 여전히 이 함수 범위 내 에 있다.이 변수의 값 을 바 꾸 면 외부 동명 변수의 값 도 자연히 바뀐다.
function recursion($data = [], $i = 0)
{
global $data;
if ($i < 10) {
$data[] = $i;
$i++;
$this->recursion($data, $i);
}
return $data;
}
//
$this->recursion(); // [0,1,2,3,4,5,6,7,8,9]
3.정적 변 수 를 이용 하여정적 변 수 는 첫 번 째 호출 때 만 초기 화 됩 니 다.부분 함수 필드 에 만 존재 하지만 프로그램 이 이 역할 영역 을 떠 날 때 값 을 잃 어 버 리 지 않 습 니 다.
function recursion($i = 0)
{
static $data = [];
if ($i < 10) {
$data[] = $i;
$i++;
$this->recursion($i);
}
return $data;
}
//
$this->recursion(); // [0,1,2,3,4,5,6,7,8,9]
이상 은 PHP 가 재 귀 를 실현 하 는 세 가지 방법의 상세 한 내용 입 니 다.더 많은 PHP 재 귀 에 관 한 자 료 는 우리 의 다른 관련 글 을 주목 하 세 요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
laravel에 yo에서 angularJs&coffeescript를 사용할 수 있도록 한다.먼저 yo 명령을 사용할 수 있어야하므로 아래에서 설치 global에 설치한 곳에서 laravel의 프로젝트 루트로 이동. 클라이언트 코드를 관리하는 디렉토리를 만들고 이동합니다. 클라이언트 환경 만들기 이것으로 히...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.