设为首页收藏本站

自学it网-公益PHP培训!

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1130|回复: 2

一个关于递归的小问题 [复制链接]

Rank: 1

发表于 2017-2-13 11:04:05 |显示全部楼层
<?php

function test($n){
  echo $n;
  if($n>0){
  test($n-1);

  }else{

  echo"<--->";
}

echo $n." ";

}



test(2);

/***
运行结果显示:210<--->0 1 2
我只知道:210<--->0   是怎么运行出来的,
我不理解的是210<--->0 1 2中的最后面的  1  2 是怎么出来的?
运行到了$n=0时 输出0<--->0后,程序就运行到末尾最后了,从这往后再怎么走啊?
谢谢!!!
请赐教!!!



***/

使用道具 举报

Rank: 8Rank: 8

发表于 2017-2-13 14:22:38 |显示全部楼层
1和2 是因为你最开始的两个函数没有运行完强制进入另外一个函数去了,当最后一个函数运行完的时候则会回去继续运行原来没有运行完的函数。也就是这个递归函数最后的一个echo,最开始因为前面的逻辑问题跳转到了另一个函数去了,没有执行完,当跳转的函数运行完了则依次完成自身的函数。

使用道具 举报

Rank: 1

发表于 2017-2-18 14:09:27 |显示全部楼层
也许这样你会看明白一点

QQ截图20170218140810.png


使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

Archiver|自学it网 ( 京ICP备12009156号 )  

GMT+8, 2017-10-22 21:25 , Processed in 0.036007 second(s), 7 queries , Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部