まずコードを使用して問題を再現します
一見すると、結果は非常にわかりにくいです:
コードをコピーします コードは次のとおりです:
$string = << ;
hello
/data>
$data = simplexml_load_string($string);
print_r($data->foo);
不可解:
コードをコピーする 以下のようなコード:
Simplexmlement オブジェクト ( [foo] = & gt; 配列 ( [0] = & gt; simplexmlement オブジェクト
(
[bar] = & gt ; こんにちは
)
[1] => SimpleXMLElement オブジェクト
(
[bar] => ワールド
)
)
)
SimpleXMLElement オブジェクト
(
[bar] => こんにちは
)
明らかに print_rは、 foo が 2 つの配列を持つ bar 要素であることを示していますが、最終的には 1 つの bar 要素だけが表示されます。
その理由は実際には非常に簡単です。上記の simplexml_load_string の結果では、foo は配列ではなく、反復可能なオブジェクトです。
次のように確認できます:
コードをコピーします
コードは次のとおりです:
foreach ($data->foo as $v) print_r($v); ;children() as $ v) print_r($v); print_r や var_dump の出現は完全に信頼できるものではないようなので、より注意してください。
http://www.bkjia.com/PHPjc/322732.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/322732.html技術記事まず、コードを使用して問題を再現します。一見すると、結果は非常に混乱します。次のようにコードをコピーします。 ?php $string = EOF data foobarhello/bar/foo foobarworld/bar/foo /data EOF; ...