About PHP recursive algorithm _php tutorial

Source: Internet
Author: User
Tags cos php programming
PHP is still more commonly used, so I studied the PHP recursive algorithm, here to take out and share with you, hope to be useful to everyone. PHP, a nested abbreviated name, is an abbreviation for the English Super Text preprocessing language (Php:hypertext preprocessor). PHP is an HTML embedded language, is a server-side implementation of embedded HTML document scripting language, language style has similar to the C language, is now widely used by many web site programmers. PHP's unique syntax mixes C, Java, Perl, and PHP's self-innovative syntax.

It can perform dynamic Web pages more quickly than CGI or Perl. Dynamic pages made with PHP are compared to other programming languages, and PHP is executed in an HTML document, which is much more efficient than CGI, which is also embedded in the HTML document, and PHP is executed on the server side, compared to the scripting language JavaScript Take full advantage of the performance of the server, the PHP execution engine will also be the user frequently access to the PHP program in memory, other users do not need to recompile the program once again to access the program, as long as the direct execution of in-memory code, which is the embodiment of PHP efficiency.

PHP has a very powerful feature, all CGI or JavaScript functionality PHP can be implemented, and support almost all the popular database and operating system. We introduce the PHP recursive algorithm in detail here.

PHP Recursive algorithm code:

 
 
  1. PHP
  2. Defines the value of the angle of a pi point
  3. Define ("PII", m_pi/180);
  4. Creates a new image resource and defines its background as white with a foreground color of black
  5. $ im = imagecreate (670,500);
  6. $ White = imagecolorallocate ($im, 0xff,0xff,0xff);
  7. $ g = imagecolorallocate ($im, 0x00,0x00,0x00);
  8. From the code instantiated below you can tell that the initial value $x, $y, $L, $a not divided into 300,500,100,270
  9. Functiondrawleaf ($g, $x, $y, $L, $a) {
  10. Global$im;
  11. $ B = - ;
  12. $ C = 9 ;
  13. $ S1 = 2 ;
  14. $ S2 = 3 ;
  15. $ S3 = 1 . 2;
  16. if ($L>$s 1) {
  17. Calculate the positioning of the leaves above
  18. $ X2 = $x + $L *cos ($a *pii);
  19. $ y2 = $y + $L *sin ($a *pii);
  20. $ X2R = $x $L/$s 2*cos (($a + $B) *pii);
  21. $ y2r = $y $L/$s 2*sin (($a + $B) *pii);
  22. $ x2l = $x $L/$s 2*cos (($a-$B) *pii);
  23. $ y2l = $y $L/$s 2*sin (($a-$B) *pii);
  24. Calculate the position of the leaves below
  25. $ X1 = $x + $L/$s 2*cos ($a *pii);
  26. $ Y1 = $y + $L/$s 2*sin ($a *pii);
  27. $ x1l = $x 1+ $L/$s 2*cos (($a-$B) *pii);
  28. $ y1l = $y 1+ $L/$s 2*sin (($a-$B) *pii);
  29. $ x1r = $x 1+ $L/$s 2*cos (($a + $B) *pii);
  30. $ y1r = $y 1+ $L/$s 2*sin (($a + $B) *pii);
  31. Do not draw the leaves of the trunk and foliage
  32. Imageline ($im, (int) $x, (int) $y, (int) $x 2, (int) $y 2, $g);
  33. Imageline ($im, (int) $x 2, (int) $y 2, (int) $x 2R, (int) $y 2R, $g);
  34. Imageline ($im, (int) $x 2, (int) $y 2, (int) $x 2L, (int) $y 2L, $g);
  35. Imageline ($im, (int) $x 1, (int) $y 1, (int) $x 1L, (int) $y 1L, $g);
  36. Imageline ($im, (int) $x 1, (int) $y 1, (int) $x 1R, (int) $y 1R, $g);
  37. Recursively calls itself again
  38. Drawleaf ($g, $x 2, $y 2, $L/$s 3, $a + $C);
  39. Drawleaf ($g, $x 2R, $y 2R, $L/$s 2, $a + $B);
  40. Drawleaf ($g, $x 2L, $y 2L, $L/$s 2, $a-$B);
  41. Drawleaf ($g, $x 1L, $y 1L, $L/$s 2, $a-$B);
  42. Drawleaf ($g, $x 1R, $y 1R, $L/$s 2, $a + $B);
  43. }
  44. }
  45. Instantiation of
  46. Drawleaf ($g, 300,500,100,270);
  47. Header ("Content-type:image/png");
  48. Imagepng ($im);
  49. ?> in my personal experience with PHP programming, recursive calls are often used with static variables. The meaning of static variables can be referenced in the PHP manual. Hopefully, the following code will be more useful for understanding recursion and static variables.
  50. Header ("Content-type:text/plain");
  51. Functionstatic_function () {
  52. static$ I = 0 ;
  53. if ($i + +<) {
  54. Echo$i. " n ";
  55. Static_function ();
  56. }
  57. }
  58. Static_function ();

This code will output a number from 1 to 10. When the Static_function function is run for the second time, the variable i is still not released because it is a static variable, and thus the self-increment value can be obtained.


http://www.bkjia.com/PHPjc/446491.html www.bkjia.com true http://www.bkjia.com/PHPjc/446491.html techarticle PHP is still more commonly used, so I studied the PHP recursive algorithm, here to take out and share with you, hope to be useful to everyone. PHP, a nested abbreviated name, is English super ...

  • Contact Us

    The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

    If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.