具有全局变量的注释树的Php递归

时间:2016-07-29 07:09:04

标签: php recursion

<link ref="@(Url.Content("path of css"))" rel="stylesheet">

<script src="@(Url.Content("path of js"))" type="text/javascript"></script>

这是我显示评论树(线程评论)的递归方法, 问题是我必须在那里(if($ level&gt; $ var)语句获取变量$ var的多少(<?php tree($Comments, 0, 0); $var = -1; function tree($Comments, $parent_id = 0, $level=0) { global $var; foreach($Comments as $Comment){ if($Comment['parent_id'] == $parent_id) { If ($level > $var) {$var++;} else {echo ($var-$level+1); $var=$level;}; for ($i=$level; $i>0; $i--) echo "-"; echo $Comment['text']."<br>"; tree($Comments, $Comment['id'], $level+1); } } } ?> 用于引导程序设计)我应该用它来为注释线程设计问题是我得到了第一个结果1,据说我不应该这样,其余部分得到应有的结果。

编辑1,数据库中的数据示例(为了便于理解):

</div>

我的表:

id id_theme parent_id user text
16 14 0 DomainFlag This is 1!
17 14 16 DomainFlag This is 2!
18 14 16 DomainFlag This is 3!
20 14 17 DomainFlag This is 4!
21 14 17 DomainFlag This is 5!
22 14 21 DomainFlag This is 7!
23 14 22 DomainFlag This is 8!
24 14 18 DomainFlag This is 6!
25 14 0 DomainFlag This is 9!
26 14 25 DomainFlag This is 10!
27 14 25 DomainFlag This is 11!

我的想法是创建一个线程系统的评论(使用$ level,我从递归函数中得到):

id
parent_id
id_theme
user
text
upVotes
downVotes

所以我首先得到的结果是1,不管是什么,我不应该( 1 这是1!)。其余的工作正常。

   0
     1
      2
       3
      2
     1
     1
   0
     1
   0

为什么一开始出现1?我听说全球范围实施起来并不好,为什么?以及如何不使用它?

0 个答案:

没有答案