次のように、2 つのダッシュを含むタグを含む xml ドキュメントがあります<item--1>
。このドキュメントを解析するために SimpleXML を使用しているので、タグの名前を持つオブジェクト プロパティが得られます。これは明らかに問題です。ダッシュは変数名とプロパティ名には無効な文字であるためだと思います。
<?php
$xml = "<data><fruits><item>apple</item><item--1>bananna</item--1></fruits></data>";
$xml = simplexml_load_string($xml);
foreach( $xml->children() as $child ) {
var_dump($child->item);
# var_dump($child->item--1);
}
これを実行すると、
object(SimpleXMLElement)#5 (1) {
[0]=>
string(5) "apple"
}
しかし、最後の行 (ダッシュが 2 つある xml 要素) のコメントを外すと、エラーが発生します。
PHP Parse error: syntax error, unexpected T_LNUMBER in test.php on line 17
中括弧を使用してみました:
var_dump($child->{item--1});
しかし、それは私にこのエラーを与えただけです:
PHP Parse error: syntax error, unexpected T_DEC
これはデクリメント演算子、または--
です。
このオブジェクトのプロパティを参照するにはどうすればよいですか?