递归算法对于任何一个编程人员来说,应该都不陌生。因为递归这个概念,无论是在PHP语言还是Java等其他编程语言中,都是大多数算法的灵魂。

对于PHP新手来说,递归算法的实现原理可能不容易理解。但是只要你了解掌握了这个算法原理,就可以灵活运用递归算法实现编程中的多种功能比如实现无限分类等。递归也是入门者最需要掌握的一个基础算法技巧。

那究竟什么是递归呢?

递归其实就是函数本身直接或者间接地调用自身的一种编程方法,也可以理解为有反复执行过程的一种方法,这个就与循环非常相似,但是递归调用的函数中必须要有终止条件,也就是一定要有跳出反复执行过程的条件,否则就会成为死循环。

下面我们就通过具体代码示例为大家介绍PHP递归算法也是PHP递归排序的三种实现方法。

方法一:静态变量

<?php

function call(){
static $i=1;
echo $i.'<br>';
$i++;
if ($i<=10){
call();
}
}
call(); 这种方法我们主要利用static定义静态变量来实现递归排序。如上我们定义了一个call方法和静态变量$i,如果我们不给$i变量添加判断,而是直接运行,显然就会出现死循环。 所以这里我们添加了一个if条件判断语句。最后循环调用自身方法,结果如下图所示:
如图中所示就是利用静态变量实现递归排序的效果。

方法二:全局变量

$i=1;

function call(){
global $i;
echo $i;
$i++;
if($i<=10){
call();
}
}
call();
此种方法主要利用global定义全局变量来实现PHP递归排序。如上我们先定义了一个$i变量,再创建一个call方法,在这个方法中,定义$i为全局变量,那么最后循环调用自身方法结果和上述结果是一样的: 12345678910 方法三:引用传参 function call(&$i=1){
echo $i.'<br>';
$i++;
if($i<=10){
call($i);
}
}
call();
大家在使用这个方法时,可以简单了解下PHP中引用传递的概念:可以将一个变量通过引用传递给函数,这样该函数就可以修改其参数的值。利用引用传参来实现PHP递归排序是最基础简单的一种算法了。 注:在调用自身方法时,一定要将参数传递进去,否则就会报错。

最新文章

  1. 【Cocos2d-x for WP8 学习整理】(4)CCTableView 实现《天天爱消除》中的得分榜
  2. JAVA要死了吗?不!我来告诉你为什么!
  3. 导航栏的坑 (导航透明/导航除线/titleIView)
  4. linq之orderby子句
  5. Redis的使用完整版
  6. OpenCV3编程入门笔记(2)计时函数、感兴趣区域RIO、分离/混合通道
  7. Linux文件和目录管理常用重要命令
  8. SQL Server性能常用语句
  9. JavaScript Madness: Dynamic Script Loading
  10. browserify.js 的模块加载
  11. PHP连接局域网MYSQL数据库的简单实例
  12. springmvc工作流程
  13. Mysql 中和同to_char 一样用法的函数
  14. eclipse使用和优化配置
  15. open-flash-chart2各种效果
  16. java 连接 postgresql
  17. 基于 React + Webpack 的音乐相册项目(上)
  18. 关于.NET C#上传大文件的解决办法
  19. thread - 传递引用参数
  20. eclipse中如何复制用点分隔的全类名

热门文章

  1. Docker:使用Jenkins构建Docker镜像
  2. 无法SSH服务器的解决过程(openssh-daemon is stopped)
  3. ElasticSearch集群介绍二
  4. nginx 耗时原因定位总结
  5. tomcat在Debug模式下无法启动解决办法
  6. nGrinder TestGroovy.groovy
  7. php 配置文件不加载的一次配置
  8. Dubbo集群容错
  9. Zabbix LLD 设置过滤条件,不自动监控某些item
  10. iOS safari 苹果手机如何阻止页面弹性“橡皮筋效果”?