if(条件)
{
  递归
}
else
{
  最后一个节点的另外处理
}

解决方案 »

  1.   

    总归是一个条件啊:文件到尾部了,XML到了最后的关闭标记……总归有个结束的条件吧。
      

  2.   

    楼上的朋友,我是楼主,我把问题再描述一下(表的结构如下图),如下
    mysql_connect("localhost","root",123456);
    mysql_select_db("temp");
    mysql_query("set names gbk");
    function get_path($nod)
    {
    $result = mysql_query("select * from test where id = " . $nod);
    if(mysql_num_rows($result))
    {
    $rows = mysql_fetch_array($result);
    echo $rows["name"] . "<br>";
    $nod = $rows["fid"];
    get_path($nod);
    }
    }
    get_path(4);
    运行上面的代码可以输出如下:
    中国动力男人
    中国男人
    男人

    问题:我想在递归最后一次的时候做一些动作,比如.输出最后一个name的时候加上六个星号如下:
    运行上面的代码可以输出如下:
    中国动力男人
    中国男人
    男人
    人******
      

  3.   

    function get_path($nod)
    {
        $result = mysql_query("select * from test where id = " . $nod);
        if($n = mysql_num_rows($result))
        {
            $rows = mysql_fetch_array($result);
            echo $rows["name"] . "<br>";
            $nod = $rows["fid"];
            if(get_path($nod) == 0) echo '******';
        }
        return $n;
    }
    get_path(4);
      

  4.   

    那你的这个判断条件不是fid==0吗?
      

  5.   

    mysql_connect("localhost","root",123456);
    mysql_select_db("temp");
    mysql_query("set names gbk");
    function get_path($nod)
    {
        $result = mysql_query("select * from test where id = " . $nod);
        if(mysql_num_rows($result))
        {
            $rows = mysql_fetch_array($result);
            echo $rows["name"];
            $nod = $rows["fid"];
            if(get_path($nod))
              echo "<br>";
            else
              echo "******<br>";
            return true;
        }
        return false;
    }
    get_path(4);
      

  6.   

    写错了,可以把<br>放在内容前面输出,最后多一个<br>
      

  7.   

    这个标题也太忽悠人了吧 呵呵 递归是个特殊的循环 总要有个条件判断停止递归 PHP对递归支持不好 只能递归循环27次 和平台可能有关系 所以另外想办法吧
      

  8.   

    PHP对递归支持不好 只能递归循环27次 ,哪个和你说的?