XML Exemple:PHP, tableaux SimpleXML. coulée non anticipée d'un tableau à une chaîne
<root>
<ratings>3</ratings>
<ratings>5</ratings>
<ratings>7</ratings>
</root>
Le code suivant est la base de ma petite application, cela fonctionne comme on pouvait s'y attendre:
<?php
// $xml is some simplexml object
sizeof($xml->ratings); //3
foreach($xml->ratings as $rating){
echo($rating->value."::"); //this echoes all 3 rating values: 3::5::7
}
?>
Ce code suivant, qui Je considérerais normalement être équivalent n'est pas. Et je ne sais pas pourquoi:
<?php
// $xml is some simplexml object
$ratings = $xml->ratings;
sizeof($ratings); //3, all is well so far
foreach($ratings as $rating){
echo($rating."::");
/*this echoes a never-ending list of ratings,
looking like 3::5::5::5::5::5::5::5...... */
}
?>
Mon sentiment est que l'opérateur d'affectation est coulée le tableau d'objets SimpleXML (objets de notation) comme quelque chose de bizarre, mais ils ont pas la moindre idée de comment.
Autres petits conseils:
var_dump($xml);
/* Output is:
object(SimpleXMLElement)#7 (1) {
["ratings"]=>
array(3) {
[0]=>
string(1) "3"
[1]=>
string(1) "5"
[2]=>
string(1) "7"
}
}
*/
var_dump($ratings);
/* Output is:
object(SimpleXMLElement)#6 (1) {
[0]=>
string(1) "3"
}
*/
foiré le premier extrait de code tout en révisant le problème. Ratings est le seul élément (aka, aucun sous-élément de valeur), donc la deuxième syntaxe ($ rating) ou ($ xml-> ratings) est correcte .... –