>  기사  >  백엔드 개발  >  PHP 함수의 재귀 호출의 원리와 응용

PHP 함수의 재귀 호출의 원리와 응용

WBOY
WBOY원래의
2024-04-17 10:45:02994검색

함수 재귀의 원리: 함수가 자신을 호출합니다(자기 참조). 매개변수는 호출될 때마다 변경됩니다. 재귀 조건(중지 조건)이 만족될 때까지 재귀를 계속합니다. 함수의 재귀적 적용: 복잡한 문제를 단순화합니다(하위 문제로 분해). 깔끔한 코드(더 우아함). 예: 계승(곱으로 분해)을 계산합니다. 트리에서 노드의 조상을 찾습니다(재귀 검색).

PHP 函数递归调用的原理和应用

PHP 함수 재귀 호출의 원리와 적용

함수 재귀란 무엇입니까

함수 재귀는 자신을 호출하는 함수의 자기 참조 기능을 나타냅니다. 함수 자체 내에서 호출되는 경우를 재귀 호출이라고 합니다.

재귀의 원리

  1. 함수는 자기 자신을 호출합니다.
  2. 재귀 호출에서는 함수의 매개변수가 변경됩니다.
  3. 재귀 조건에 도달할 때까지 재귀 프로세스가 계속됩니다.
  4. 재귀 조건이 충족되면 함수는 재귀를 중지하고 결과를 반환합니다.

재귀의 장점

  • 복잡한 문제 해결: 재귀는 복잡한 문제를 더 작은 하위 문제로 나누어 솔루션을 단순화할 수 있습니다.
  • 코드 단순성: 재귀 코드는 일반적으로 비재귀 코드보다 더 간결하고 우아합니다.

적용 사례

1. 계승 계산

function factorial($number) {
  if ($number == 1) {
    return 1;
  } else {
    return $number * factorial($number - 1);
  }
}

echo factorial(5); // 输出: 120

2. 트리에서 노드의 조상을 찾습니다

class Node {
  public $data;
  public $children;
}

function findAncestors($node, $target) {
  if ($node->data == $target) {
    return [$node->data];
  } else {
    $ancestors = [];
    foreach ($node->children as $child) {
      $ancestors = array_merge($ancestors, findAncestors($child, $target));
    }
    if (!empty($ancestors)) {
      $ancestors[] = $node->data;
    }
    return $ancestors;
  }
}

$root = new Node(['data' => 'root']);
$node1 = new Node(['data' => 'node1']);
$node2 = new Node(['data' => 'node2']);
$node3 = new Node(['data' => 'node3']);
$root->children = [$node1, $node2];
$node2->children = [$node3];

$ancestors = findAncestors($root, 'node3');
var_dump($ancestors); // 输出: ['root', 'node2', 'node3']
.

위 내용은 PHP 함수의 재귀 호출의 원리와 응용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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