标签:通过 clu 条件判断语句 递归算法 作用 了解 没有 符号 pre
递归算法的实现方法是有多种的,如通过“静态变量”、“全局变量”、“引用传参”的方式:
静态变量的方法:
<?php function call(){ static $i = 0; echo $i . ‘‘; $i++; if($i<10){ call(); } } call();
输出:
0 1 2 3 4 5 6 7 8 9
利用static定义静态变量来实现递归排序。如上我们定义了一个call方法和静态变量$i,如果我们不给$i变量添加判断,而是直接运行,就会出现死循环。所以我们这里添加了一个if条件判断语句。最后循环调用自身方法
全局变量Global实现递归:
1 <?php 2 $i=1; 3 function call(){ 4 global $i; 5 echo $i; 6 $i++; 7 if($i<=10){ 8 call(); 9 } 10 } 11 call();
输出:
12345678910
如果没有在方法体内用global 定义$i,则会出现$i未被声明的错误。并且需要注意,在函数体内定义的global变量,函数体内可以使用,在函数体外定义的global变量不能在函数体内使用。
注:Global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件。递归即调用自身的函数。在使用递归时,我们需要在函数中定义退出条件,否则它将进入无限循环(这里我们通过if语句定义了退出条件)。
引用传参的方式实现递归算法:
1 <?php 2 function test($a=0,&$result=array()){ 3 $a++; 4 if ($a<10){ 5 $result[]=$a; 6 test($a,$result); 7 } 8 echo $a."<hr>"; 9 return $result; 10 } 11 var_dump(test());
php的引用,简单来说就是在变量或者函数、对象等前面加上&符号(也就是引用符号),这里就需要了解下PHP引用传递的概念,即可以将一个变量通过引用传递给函数,这样该函数就可以修改其参数的值。
在PHP 中引用的意思就是不同的名字访问同一个变量内容。
标签:通过 clu 条件判断语句 递归算法 作用 了解 没有 符号 pre
原文地址:https://www.cnblogs.com/mo3408/p/12148835.html