PHP 재귀 함수 사용과 관련하여 php재귀 함수의 몇 가지 예를 공유하세요. PHP 프로그래밍에서는 재귀 함수를 사용하여 함수를 호출하는 것이 매우 일반적입니다. 코드 효율성을 높이려면 PHP 재귀 함수 사용법을 통해 배우세요.
1. 재귀함수란 무엇인가요?
함수 본문 내에서 자신을 호출하는 함수를 재귀 호출이라고 합니다. 이런 종류의 함수를 재귀함수라고 합니다.
PHP에서 재귀 함수와 비재귀 함수의 차이점은 무엇인가요?
예제 1: 정적 변수 사용
코드 예:
function test(){ static $dig=0; if($dig++<10){ echo $dig; test(); } } test();//12345678910
예 2: 재귀 함수 및 루프를 사용하여 문자열 반전 배열 구현
코드 예시:
function unreverse($str){ for($i=1;$i<=strlen($str);$i++){ echo substr($str,-$i,1); } } unreverse("abcdefg");//gfedaba function reverse($str){ if(strlen($str)>0){ reverse(substr($str,1)); echo substr($str,0,1); return; } } reverse("abcdefg");//gfedaba
2. PHP 재귀 함수 사용 예시
PHP 재귀적 사용 예(php 재귀 함수)에는 역할 ID 문자열을 재귀적으로 획득하고, 캐스케이드 역할 정보 배열을 재귀적으로 획득하고, 상위 역할의 ID를 통해 하위 역할 정보를 획득하는 것이 포함됩니다.
예:
코드 예:
//递归获得角色ID字符串 function explodeRole($roleObj, &$resultStr){ if(0 < count($roleObj->childRoleObjArr)){ foreach($roleObj->childRoleObjArr as $childRoleObj){ if('' == $resultStr){ $resultStr .= "{$childRoleObj->id}"; }else{ $resultStr .= ", {$childRoleObj->id}"; } explodeRole($childRoleObj, $resultStr); } } } //递归获取级联角色信息数组 function makeRoleRelation(&$roleObjArr){ foreach($roleObjArr as $item){ $item->childRoleObjArr = getRoleObjArrByParentId($item->id); if(0 < count($item->childRoleObjArr)){ makeRoleRelation($item->childRoleObjArr); } } } //通过父角色的id获取子角色信息 function getRoleObjArrByParentId($parentid){ $operCOGPSTRTSysRole = new COGPSTRTSysRole(); $operCOGPSTRTSysRole->setColumn($operCOGPSTRTSysRole->getAllColumn()); $operCOGPSTRTSysRole->setWhere("parentroleid={$parentid}"); $roleObjArr = $operCOGPSTRTSysRole->convResult2ObjArr($operCOGPSTRTSysRole->selectTable()); return isset($roleObjArr)?$roleObjArr:array(); }
php 재귀 함수 사용법
예제 1: 정적 변수를 사용하여 재귀 구현.
코드 예:
function test(){ static $dig=0; if($dig++<10){ echo $dig; test(); } } test();//12345678910
예 2: 재귀 함수와 루프를 사용하여 문자열 배열을 반대로 합니다.
코드 예:
function unreverse($str){ for($i=1;$i<=strlen($str);$i++){ echo substr($str,-$i,1); } } unreverse("abcdefg"); //gfedaba function reverse($str){ if(strlen($str)>0){ reverse(substr($str,1)); echo substr($str,0,1); return; } } reverse("abcdefg");//gfedaba
PHP 재귀 함수는 때때로 루프로 대체될 수 있습니다. 루프가 이해하기 쉽고 오류가 발생할 가능성이 적기 때문에 루프를 대신 사용할 수 없을 때 사용하는 것이 좋습니다. PHP 재귀 함수 PHP는 재귀 함수 호출 자체를 지불합니다. 이러한 함수는 트리 및 목록과 같은 동적 데이터 구조를 탐색하는 데 특히 적합합니다. 복잡한 데이터 구조를 사용해야 하는 웹 애플리케이션은 거의 없습니다.
예:
코드 복사 코드 예:
0) reverse_r(substr($str,1)); echo substr($str,0,1); return; } ?>
이 프로그램 목록에는 두 가지 함수가 구현되어 있습니다. 두 함수 모두 문자열의 내용을 역순으로 인쇄할 수 있습니다. reversr_r 함수는 재귀를 통해 구현되는 반면 reverse_i() 함수는 루핑을 통해 구현됩니다.
위 내용은 PHP 재귀 함수를 효과적으로 사용하는 방법입니다. PHP 재귀 함수의 일반적인 예. 더 많은 관련 내용을 보려면 PHP 중국어 웹사이트(www.php.cn)를 참고하세요!
추천 관련 콘텐츠:
PHP의 반환 값 사용에 대한 간략한 분석 재귀 함수