function Demo($num){ //递归调用
echo $num."<br>";
if($num>0){
Demo($num-1);
}else{
echo "------------"."<br>";
}
echo $num."<br>";
}Demo(10);前面输出的10-0可以理解,
但是echo $num为什么可以输出0-10?
echo $num."<br>";
if($num>0){
Demo($num-1);
}else{
echo "------------"."<br>";
}
echo $num."<br>";
}Demo(10);前面输出的10-0可以理解,
但是echo $num为什么可以输出0-10?
echo $num."<br>";
if($num>0){
Demo($num-1);
}else{
echo "------------"."<br>";
}
echo $num."<br>";//这里,打印出0-10,,有点深度优先的意思,执行到$num=0,这一句才会被第一次执行
}
echo $num."<br>";
if($num>0){
Demo($num-1);
}else{
echo "------------"."<br>";
}
echo $num."<br>";
}Demo(10);
递归嘛就是这样,用Demo($num-1) ,调到Demo(0) 执行echo $num."<br>";输出0;后,if不满足了,就执行else里的输出短横线了,接着就从Demo(0)--->Demo(10)递归回去,最下面的echo $num."<br>";输出0,接着轮到Demo(1),注意这时全是最下面的那个输出起作用(因为上面的一些语句都已经执行过了),一直递归到Demo(10),对应输出就是0到10。
按照我说的,一句句的想想就可以了。