我想了解我正在研究的代码的一小部分, 这是代码的Link,我不明白的部分是:
new RecursiveIteratorIterator($it, 1)
我对这部分不了解的是第二个参数,我尝试使用这个参数的值,我假设它是关于XML结构但是它的逻辑有点奇怪,所以如果有人可以请向我澄清这个第二个参数?
答案 0 :(得分:4)
好的让我分解
您需要首先了解的是这一行:
$it = simplexml_load_string($xmlstring, 'SimpleXMLIterator');
来自PHP DOC
您可以使用此可选参数,以便simplexml_load_string()将返回指定类的对象。
这意味着所有输出都将使用SimpleXMLIterator
,迭代的最佳方式是使用RecursiveIteratorIterator
Recursion
是以自我相似的方式重复项目的过程。 See wiki
示例
$xml = '
<movies>
<movie>abcd</movie>
<movie>efgh</movie>
<movie>
<name> Test </name>
<type> Action </type>
</movie>
</movies>';
echo "<pre>" ;
echo "With Just SimpleXmlIterator\n";
foreach (new SimpleXmlIterator($xml) as $value ) {
print($value . PHP_EOL);
}
echo "<pre>" ;
echo " RecursiveIteratorIterator \n";
foreach (new RecursiveIteratorIterator (new SimpleXmlIterator($xml)) as $value ) {
print(trim($value) . PHP_EOL);
}
输出1
With Just SimpleXmlIterator
abcd
efgh
输出2
RecursiveIteratorIterator
abcd
efgh
Test
Action
答案 1 :(得分:3)
您应该阅读RecursiveIteratorIterator
constructor的文档。在此重现相关部分:
可选模式。可能的值是