Lors de la manipulation de données XML à l'aide de SimpleXML, vous pouvez rencontrer des situations dans lesquelles vous devez convertir un objet SimpleXML en chaîne, quel que soit son contexte. L'exemple de code suivant illustre un problème courant :
<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
Dans cet exemple, l'extrait de code convertit avec succès le titre XML en chaîne, mais lorsque l'objet SimpleXML est stocké dans un tableau, il reste en tant qu'objet. . Cela peut être problématique pour certaines opérations.
La meilleure approche pour forcer un objet SimpleXML en chaîne, quel que soit le contexte, est de le transtyper. L'extrait de code suivant le démontre :
$foo = array((string)$xml->channel->item->title);
Ce code appelle en interne la méthode __toString() sur l'objet SimpleXML, qui le convertit en chaîne. Il est important de noter que bien que __toString() ne soit pas accessible au public, cette solution de contournement vous permet d'obtenir le comportement souhaité.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!