SimpleXML を使用して XML データを操作する場合、その内容に関係なく、SimpleXML オブジェクトを文字列に変換する必要がある状況が発生することがあります。コンテクスト。次のコード サンプルは、一般的な問題を示しています。
<xmlstring> <channel> <item> <title>This is title 1</title> </item> </channel> </xmlstring> $xml = simplexml_load_string($xmlstring); echo $xml->channel->item->title; // Output: "This is title 1" in string format // Problem: SimpleXML object is stored as array element $foo = array($xml->channel->item->title); // Result: SimpleXML object
この例では、コード スニペットは XML タイトルを文字列に正常に変換しますが、SimpleXML オブジェクトが配列内に格納されるとオブジェクトのままになります。 。これは、特定の操作では問題となる可能性があります。
コンテキストに関係なく、SimpleXML オブジェクトを強制的に文字列に型キャストする最良の方法は、型キャストすることです。次のコード スニペットはこれを示しています。
$foo = array((string)$xml->channel->item->title);
このコードは内部で SimpleXML オブジェクトの __toString() メソッドを呼び出し、それを文字列に変換します。 __toString() は公開されていませんが、この回避策により目的の動作を実現できることに注意することが重要です。
以上がPHP で SimpleXML オブジェクトを文字列に確実に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。