划横线这行具体何时执行的? 整个执行顺序是怎样的? 与之对应的语法是什么?
回复讨论(解决方案)
你这是递归
用深度优先算法遍历树
大神,为什么$child = $this->childlist($arr,$v[‘cat_id’]);这句之后 往下面执行了 二不是直接进入childlist这个方法中
$child = $this->childlist($arr,$v[‘cat_id’]); 就是进入 childlist
执行完了,就执行 $child = $this->childlist($arr,$v[‘cat_id’]); 的下一句
楼主可以学习一下递归的用法就明白了
就是深度遍历,你得学习学习算法了
我知道这是递归,深度遍历,但是每执行完这句$child = $this->childlist($arr,$v[‘cat_id’]);后,都会向下执行,将$child先保存起来之后再执行childlist($arr,$v[‘cat_id’]),这是为什么?
php不都是一条线执行的吗?我问的是具体何时执行的childlist($arr,$v[‘cat_id’]), 如果是赋给$child时执行的话,就不会往下面走了,这是不对的。为什么往下走了?并且调用 的这个方法到底是什么时候执行的?跪求大神解答
你在方法入口处打印出 $pid 就能看到了
好像有思路了,$child = $this->childlist($arr,$v[‘cat_id’]);后打印下$child
这两个是测试代码和输出的结果 到了输出1之后就看不懂了
你贴出代码而不是截图后,再细细跟你说
你总不能说:请教人家,还要人家按图打一遍代码吧?