私は勉強しているコードの小さな部分を理解しようとしています.これはコードへのリンクです.私が理解していなかった部分はこれです:
new RecursiveIteratorIterator($it, 1)
この部分について私が理解できなかったのは 2 番目のパラメーターです。このパラメーターの値をいじってみましたが、XML 構造に関するものだと思いますが、そのロジックは少し奇妙です。この2番目のパラメーターについて?
分解させてください
最初に理解する必要があるのは、この行です。
$it = simplexml_load_string($xmlstring, 'SimpleXMLIterator');
PHPDOCから
simplexml_load_string()が指定されたクラスのオブジェクトを返すように、このオプションのパラメーターを使用できます。
これは、すべての出力が使用されることを意味しSimpleXMLIterator
、反復するための最良の方法はを使用することですRecursiveIteratorIterator
Recursion
自己相似的な方法でアイテムを繰り返すプロセスです。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
コンストラクターのドキュメントを読む必要があります。ここで関連部分を再現します。RecursiveIteratorIterator
オプションモード。可能な値は次のとおりです。