12
votes

Comment accéder à un membre d'une STDCLASS dans PHP qui commence par un @

J'ai un objet JSON que j'ai décodé et que l'un des attributs commence par un "@" et je ne peux pas accéder à l'élément avec PHP car il jette une erreur.

                    [offers] => stdClass Object
                    (
                        [@attributes] => stdClass Object
                            (
                                [id] => levaka0B8a
                            )
                    )


2 commentaires

Cela ressemble plutôt à c'était une certaine conversion étrange d'un simplexmlelement à une STDCLASS. Pouvez-vous s'il vous plaît clarifier comment vous avez la décharge?


C'est la conversion de JSON PAS XML :)


4 Réponses :


9
votes

Vous pouvez le faire:

$object->{'@attributes'}


0 commentaires

31
votes

Vous pouvez y accéder par une chaîne: xxx

ou une variable: xxx

Pour plus d'informations sur la manière dont les variables sont définies et utilisé, voir les documents suivants:

  • bases de variable - utile pour apprendre ce qui peut être accessible en tant que variable sans avoir besoin de utiliser des chaînes.
  • Variables Variables - Comment nous avons utilisé la variable pour agir comme nom d'un autre variable. Cela peut être dangereux alors standez soigneusement

0 commentaires

2
votes

Un accès direct est ci-dessous chez IRCMAXWELL ou RICHARD TUIN, mais vous pouvez décoder JSON avec le deuxième tableau VRAI et RECOMPER MONTÉE QUOI POURRAIT ÊTRE FACILE À ACCÈS


0 commentaires

3
votes

Essayez d'utiliser,

<?php
$string = <<<XML
<a>
 <foo name="one" game="lonely">1</foo>
</a>
XML;

$xml = simplexml_load_string($string);
var_dump( $xml );
foreach($xml->foo[0]->attributes() as $a => $b) {
    echo $a,'="',$b,"\"\n";
}
?> 


0 commentaires