“迭代”单个对象或php对象的索引等价物
我可以到达我要去的地方,但我想要最漂亮的道路.
让我在这里的是研究运行函数的最佳方法,该函数返回一组对象,如$dom-> getElementsByTagName()或$pdo-> query(‘SELECT itcher FROM scratches’)然后 – 知道它将会只有一个结果 – 访问该结果. 我做了一些研究,但我想知道我知道所有的知识. foreach或任何迭代过多事的东西从审美观点来看都是愚蠢的,因为我知道只有一个.将它投射到一个阵列感觉就像一个瑕疵,我想要开始我的代码.到目前为止我最喜欢的是$object-> {‘0’},因为它与我发现的$object [0]一样接近,但它似乎并不适用于所有情况.有什么东西比较漂亮吗?例如,在将$key设置为$val时,foreach($key as $val)在每次迭代时做了什么?我可以自己做吗? 也许我不是在想象中正确地想象一个对象的想法,但是getElementsByTagName和mysql查询返回数组会不会更有意义?他们为什么不呢?
如果它确实是一个数组,你可以使用reset()获得第一个元素. 如果它是迭代器(用于允许foreach访问对象),那么你应该能够使用$object-> current(); 我从来没有真正看过foreach的底层代码 – 但是reset()和current()似乎类似于foreach在迭代开始时会“做”的东西. 不幸的是,您引用的两个示例是内部类,而according to the docs内部类(作为语言或扩展的一部分的类)不遵循相同的规则:
也就是说,任何返回可以由foreach迭代的对象的用户类都应该是Traversable类型(foreach需要的),所以我相信current()应该按照你想要的方式工作.请注意,如果对象实际上实现了IteratorAggregate而不是Iterator,则必须使用getIterator() – > current(). 但是,仍然可以使用两个示例 – 只使用特定于返回类型的方法.在getElementsByTagName()的情况下,您可以使用getElementsByTagName-> item(0),在PDO的情况下,您可以使用query() – > fetch(). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |