PHP Iterator::key页面说:
Return Values:
Returns scalar on success, or NULL on failure.
但是为了能够从迭代器逻辑中决定当前迭代器节点是否有效(以便能够返回null或其他内容)来自Iterator::key
,必须调用{ {1}}。因此,我很自然地认为大多数人会在Iterator::check()
内调用Iterator::check()
,这样如果当前迭代器位置无效,它就可以将'Iterator :: key()`的返回值设置为null
但是当运行Iterator::next()
循环时,这会导致Iterator::check()
被调用两次。我怎样才能摆脱这种冗余?
答案 0 :(得分:0)
要解决这个问题,引入一个$currentNodeChecked
布尔变量就足够了,可以在调用Iterator::check()
之前检查它。