我试图理解我正在研究的代码的一小部分,这是代码的链接,我不明白的部分是这样的:
new RecursiveIteratorIterator($it, 1)
关于这部分我不明白的是第二个参数,我试图使用这个参数的值,我认为它是关于 XML 结构的,但它的逻辑有点奇怪,所以如果有人可以向我澄清关于第二个参数?
好的,让我分解一下
您首先需要了解的是这一行:
$it = simplexml_load_string($xmlstring, 'SimpleXMLIterator');
来自 PHP 文档
您可以使用此可选参数,以便 simplexml_load_string() 将返回指定类的对象。
这意味着所有输出都将使用SimpleXMLIterator
,并且迭代的最佳方法是使用RecursiveIteratorIterator
Recursion
是以自相似的方式重复项目的过程。见维基
例子
$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
您应该阅读构造函数的文档。在此处复制相关部分:RecursiveIteratorIterator
可选模式。可能的值为