How to access a member of an stdClass in PHP that starts with an @

前端 未结 4 400
不知归路
不知归路 2021-01-04 09:10

I have some json object that I decoded, and one of the attributes starts with an \"@\" and I can\'t access the element with php because it throws an error.

          


        
相关标签:
4条回答
  • 2021-01-04 09:23

    Try to use,

    $objSimpleXml->attributes()->id
    

    Sample Code to Refer

    <?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 讨论(0)
  • 2021-01-04 09:30

    You can access it by a string:

    echo $obj->{'@attributes'}->id; // levaka0B8a
    

    Or a variable:

    $name = '@attributes';
    echo $obj->$name->id;
    

    For more information on how variables are defined and used, see the following docs:

    • Variable Basics - Useful for learning what can be accessed as a variable without needing to use strings.
    • Variable Variables - How we used the variable to act as the name for another variable. This can be dangerous so tread carefully
    0 讨论(0)
  • 2021-01-04 09:39

    You could do this:

    $object->{'@attributes'}
    
    0 讨论(0)
  • 2021-01-04 09:39

    direct access is below from ircmaxwell or Richard Tuin, however you can decode JSON with second param true and recive array insted what could be an easier to access

    0 讨论(0)
提交回复
热议问题