一个PHP 递归的问题。希望高手给一下答案

<?php
/**
* @author Administrator
* @copyright 2012
*/

function cfb($jiSu)
{
$beiCengSu=1;
$output=$jiSu*$beiCengSu;
echo "<tr>";
echo "<th>".$jiSu."*".$beiCengSu."=".$output."</th>";
echo "</tr>";
if($beiCengSu < 10)
{
$beiCengSu++;
cfb($jiSu);
}
else
{
return 0;
}
};
//鐢熸垚琛ㄦ牸
echo "<table>";
cfb(1);
echo "</table>";
?>

为什么错出现错误。我看写的没问题呀。

简单说一下这段代码的问题在哪儿~~
从你的思路上来说,你应该是想实现一个乘法表,但是出现一个很严重的问题,按照你的意思,你应该是想将 $beiCengSu ++ ,然后递归调用的时候能够生效,但是事实上,每次调用函数的时候,$beiCengSu 这个变量都会被初始化为 1,也就是说,这里的 ++ 执行了,但是没有任何实际的意义,对于每一层调用来说,$beiCengSu 这个变量的值都是 1,所以这个函数就直接陷入死循环了~~
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-02-22
你因该先说说“所设计的意图”,然后别人才能把"有错的代码"往"正确意图"上改。。
现在只能靠分析有错代码猜测意图。以后提问时注意吧。
这题好像是“递归的9x9乘法表”?

<?php
function cfb($n)
{
if($n< 10)
{
echo "<tr>";
for($m=1;$m<=$n;$m++)
echo "<th>".$n."*".$m."=".($n*$m)."</th>";
echo "</tr>";
cfb($n+1);
}
}
echo "<table>";
cfb(1);
echo "</table>";
==============
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
第2个回答  2012-02-22
你的function结尾怎么有分号?删掉