示例:<?php
$b=0;
function a($i){
global $b;
if(!$i){return;}
$a=$i;
echo $a,' ';
$i--;
a($i);//开始递归
$b++;
echo $b,' ';
}
a(100);
?>执行结果:
100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 80 79 78 77 76 75 7
4 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48
47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21
20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 8 9 10 11 12 1
3 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 9
3 94 95 96 97 98 99 100 请按任意键继续. . .问题:为什么在递归后面的代码是在前面全部循环完毕后才开始执行?
$b=0;
function a($i){
global $b;
if(!$i){return;}
$a=$i;
echo $a,' ';
$i--;
a($i);//开始递归
$b++;
echo $b,' ';
}
a(100);
?>执行结果:
100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 80 79 78 77 76 75 7
4 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48
47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21
20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 8 9 10 11 12 1
3 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 9
3 94 95 96 97 98 99 100 请按任意键继续. . .问题:为什么在递归后面的代码是在前面全部循环完毕后才开始执行?
解决方案 »
- 求类似phpmyadmin的复选框功能,带修改功能
- [高分悬赏]php读数据库字段的各种方法
- smarty 如何把零给显示出来
- php 发送mail问题
- 比如下面代码,变量a是 true,输出显示是1,为什么不是 true 呢? 变量b是false,输出为何是空白呢?即什么输出也没有,这与javascript有很
- PHP画图,非 TTF 格式的中文字体,如何写?
- 复选框对应文本框提交的问题
- 帮我解释几个PHP代码程序?~
- 大家帮忙看看,我遇到一个奇怪的问题!急急,请各位帮忙
- 有人可以提供一个最简单的session的使用例子吗?
- 如何在tpl里把assign的值显示出来
- 天啊,php的session究竟怎么了
echo 'somethig';按照顺序执行的话,echo,应该在a($i)运行完后
a($i)(第1次)运行的时候,a()内部又再次调用a($i)(第2次),在这个运行的过程中,对于a($i)(第1次)是没有运行完,所以不存在echo(第1次)
只有当a($i)(最后1次),它本身运行到一半的时候,发现条件不满足,return了,算它本身结束了
之后,对于上一层:a($i)(倒数第2次)来说,a($i)调用完毕,因此echo了,
之后,又是上上层
他就好比一层一层进去在一层一层退出来,也不知道这样说恰当不!<?php#$b=0;function a( $i )
{
#global $b;
if( !$i ){ return; }
$a=$i;
echo $a,' ';
$i--;
a($i);//开始递归
#$b++;
#echo $b,' ';
echo $i,' ';
}
a(100);