Home Backend Development PHP Tutorial Detailed explanation of php recursive function

Detailed explanation of php recursive function

Feb 26, 2018 am 10:07 AM
php function Detailed explanation

Regarding the usage of PHP recursive functions, share several examples of PHP recursive functions. In PHP programming, it is very common to use recursion to make function calls. Recursive functions can be used well to improve code efficiency. Learn PHP recursive functions through examples. use.

1. What is a recursive function?

A function calling itself within its function body is called a recursive call. This kind of function is called a recursive function.

What is the difference between recursive functions and non-recursive functions in php?

Example 1: Using static variables

Code example:

1

2

3

4

5

6

7

8

function test(){

 static $dig=0;

 if($dig++<10){

  echo $dig;

  test();

 }

}

test();//12345678910

Copy after login

Example 2: Using recursive functions and loops to implement string reversal arrangement

Code example:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

function unreverse($str){

 for($i=1;$i<=strlen($str);$i++){

  echo substr($str,-$i,1);

 }

}

unreverse("abcdefg");//gfedcbc

function reverse($str){

 if(strlen($str)>0){

  reverse(substr($str,1));

  echo substr($str,0,1);

  return;

 }

}

reverse("abcdefg");//gfedcbc

Copy after login

2. PHP recursive function usage examples

php recursive usage examples (php recursive function), including recursively obtaining the role ID string, recursively obtaining the cascade role information array, and recursively obtaining the cascade role information array through the parent role. id gets sub-role information.

Example:

Code example:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

//递归获得角色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();

}

Copy after login

php recursive function usage

Example 1: Use static variables to implement recursion.

Code example:

1

2

3

4

5

6

7

8

function test(){

 static $dig=0;

 if($dig++<10){

 echo $dig;

 test();

 }

}

test();//12345678910

Copy after login

Example 2: Use recursive functions and loops to achieve string reversal.

Code example:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

function unreverse($str){

for($i=1;$i<=strlen($str);$i++){

echo substr($str,-$i,1);

}

}

unreverse("abcdefg");

//gfedcbc

function reverse($str){

if(strlen($str)>0){

reverse(substr($str,1));

echo substr($str,0,1); return;

}

}

reverse("abcdefg");//gfedcbc

Copy after login

php recursive functions can sometimes be replaced by loops. It is recommended to use them when loops cannot be used, because it is easier for us to understand and less prone to errors using loops. PHP recursive functions PHP pays recursive functions. Recursive functions call themselves. These functions are particularly suitable for browsing dynamic data structures, such as trees and lists. Few web applications require the use of complex data structures.

Example:

Code example:

1

reverse_r(substr($str,1)); echo substr($str,0,1); return; } ?>

Copy after login

This program list implements two functions, both of which can print the contents of the string in reverse order. The function reversr_r is It is implemented through recursion, and the function reverse_i() is implemented through loops.

Related recommendations:

php deletes the entire directory through a recursive function

Solution to the problem of recursive functions in JavaScript

Explanation on calling recursive functions in php

The above is the detailed content of Detailed explanation of php recursive function. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot Article Tags

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian

CakePHP Date and Time CakePHP Date and Time Sep 10, 2024 pm 05:27 PM

CakePHP Date and Time

CakePHP Project Configuration CakePHP Project Configuration Sep 10, 2024 pm 05:25 PM

CakePHP Project Configuration

CakePHP File upload CakePHP File upload Sep 10, 2024 pm 05:27 PM

CakePHP File upload

CakePHP Routing CakePHP Routing Sep 10, 2024 pm 05:25 PM

CakePHP Routing

Discuss CakePHP Discuss CakePHP Sep 10, 2024 pm 05:28 PM

Discuss CakePHP

CakePHP Quick Guide CakePHP Quick Guide Sep 10, 2024 pm 05:27 PM

CakePHP Quick Guide

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

How To Set Up Visual Studio Code (VS Code) for PHP Development

See all articles