在用PHP模拟循环链表结构时,给初始化的链表插入一个元素没有问题,但是用for循环插入10个元素,居然报出了如下错误:
Fatal error: Nesting level too deep - recursive dependency
1 function append($data) { 2 $link = $this->header; 3 while($link->next != $this->header) { 4 $link = $link->next; 5 } 6 $link->next = new node($data); 7 $link->next->next = $this->header; 8 }
在网上搜了下发现了问题所在,我原来的代码中 while($link->next != $this->header) 对象比较使用的是'!=',改成'!==' 就没有问题了,对象的比较应该使用严格比较。
1 function append($data) { 2 $link = $this->header; 3 while($link->next !== $this->header) { 4 $link = $link->next; 5 } 6 $link->next = new node($data); 7 $link->next->next = $this->header; 8 }
附原帖地址,有兴趣的朋友可以去看看。http://blog.csdn.net/digbug/article/details/1451504
本文探讨了在PHP中实现循环链表时遇到的一个错误:Nestingleveltoodeep-recursivedependency,并给出了修正方法。问题在于while循环条件判断中使用的不等于运算符'!=',更改为严格不等于'!=='解决了问题。

96

被折叠的 条评论
为什么被折叠?



