Home >Backend Development >PHP Tutorial >Detailed example analysis of PHP recursive algorithm_PHP tutorial

Detailed example analysis of PHP recursive algorithm_PHP tutorial

WBOY
WBOYOriginal
2016-07-21 15:12:56722browse

When we are building a website, the first choice of programmers is PHP. We are relatively familiar with PHP. Next, we will introduce to you the PHP recursive algorithm. PHP, a nested abbreviation name, is the abbreviation of English Hypertext Preprocessing Language (PHP: Hypertext Preprocessor).

PHP is an HTML embedded language. It is a scripting language that is executed on the server side to embed HTML documents. The style of the language is similar to C language. It is now widely used by many website programmers. PHP's unique syntax is a mix of C, Java, Perl, and PHP's own innovative syntax.
It can execute dynamic web pages faster than CGI or Perl. Compared with other programming languages, dynamic pages made with PHP embed the program into the HTML document for execution, and the execution efficiency is much higher than CGI that completely generates HTML tags; compared with the scripting language JavaScript, which is also embedded in the HTML document In contrast, PHP is executed on the server side, making full use of the server's performance; the PHP execution engine will also store PHP programs that users frequently access in memory, so other users do not need to recompile the program when they access the program again. Just execute the code in the memory directly, which is also one of the manifestations of PHP's high efficiency.

PHP has very powerful functions. All CGI or JavaScript functions can be implemented by PHP, and it supports almost all popular databases and operating systems. Here we introduce the PHP recursive algorithm in detail.

PHP recursive algorithm code:

Copy code The code is as follows:

< ?php
//Definition The value of the angle of one minute of PI define("PII",M_PI/180);
//Create a new image resource, and define its background as white and the foreground color as black
$im=imagecreate(670,500);
$white=imagecolorallocate($im,0xFF,0xFF,0xFF);
$g=imagecolorallocate($im,0x00,0x00,0x00);
//As can be seen from the instantiated code below, The initial values ​​$x, $y, $L, $a are divided into 300,500,100,270 respectively.
functiondrawLeaf($g,$x,$y,$L,$a)
{ global$im; $B=50; $C=9; $s1=2; $s2=3; $s3=1.2;
if($L>$s1){
//Calculate the positioning of the leaf
$x2=$x+ $L*cos($a*PII);
$y2=$y+$L*sin($a*PII);
$x2R=$x2+$L/$s2*cos(($a+$ B)*PII);
$y2R=$y2+$L/$s2*sin(($a+$B)*PII);
$x2L=$x2+$L/$s2*cos(($ a-$B)*PII);
$y2L=$y2+$L/$s2*sin(($a-$B)*PII);
//Calculate the positioning of the leaf below
$ x1=$x+$L/$s2*cos($a*PII);
$y1=$y+$L/$s2*sin($a*PII);
$x1L=$x1+$L /$s2*cos(($a-$B)*PII);
$y1L=$y1+$L/$s2*sin(($a-$B)*PII);
$x1R= $x1+$L/$s2*cos(($a+$B)*PII);
$y1R=$y1+$L/$s2*sin(($a+$B)*PII);
/ /Draw the trunk and leaf surface of the leaves respectively
ImageLine($im,(int)$x,(int)$y,(int)$x2,(int)$y2,$g);
ImageLine ($im,(int)$x2,(int)$y2,(int)$x2R,(int)$y2R,$g);
ImageLine($im,(int)$x2,(int)$ y2,(int)$x2L,(int)$y2L,$g);
ImageLine($im,(int)$x1,(int)$y1,(int)$x1L,(int)$y1L, $g);
ImageLine($im,(int)$x1,(int)$y1,(int)$x1R,(int)$y1R,$g);
//Call itself recursively again
drawLeaf($g,$x2,$y2,$L/$s3,$a+$C);
drawLeaf($g,$x2R,$y2R,$L/$s2,$a+$B) ;
drawLeaf($g,$x2L,$y2L,$L/$s2,$a-$B);
drawLeaf($g,$x1L,$y1L,$L/$s2,$a -$B);
drawLeaf($g,$x1R,$y1R,$L/$s2,$a+$B);
}
}
//Instantiation
drawLeaf ($g,300,500,100,270);
header("Content-type:image/png");
imagepng($im);
?>

In my case In my PHP programming experience, recursive calls are often used with static variables. The meaning of static variables can be found in the PHP manual. I hope the following code will be more helpful for understanding PHP recursive algorithms and static variables
Copy the code The code is as follows:

header("Content-type:text/plain"); functionstatic_function() 
{ 
static$i=0; 
if($i++<10) 
{ 
echo $i."n";
static_function();
}
}
static_function();

This PHP recursive algorithm code will output numbers from 1 to 10. When the static_function function runs for the second time, the variable i is still retained and not released because it is a static variable, and the auto-incremented value can be obtained.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/326597.htmlTechArticleWhen we build a website, the first choice of programmers is PHP language. We are relatively familiar with PHP. Next, we will introduce the PHP recursive algorithm to you. PHP, one...
Statement:
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