【问题标题】:PHP stdobject with @ symbol for key [duplicate]带有@符号的PHP stdobject作为键[重复]
【发布时间】:2013-05-23 13:53:19
【问题描述】:

通过 json 解码,我有一个 std,它有一个名为

的键
@MyKey

注意@ 符号前缀。我不确定如何访问它,因为这样做:

$item['@MyKey']

结果

 Cannot use object of type stdClass as array

在做

$item->@MyKey

结果

 syntax error, unexpected '@', expecting T_STRING or T_VARIABLE

【问题讨论】:

    标签: php arrays


    【解决方案1】:

    刚刚想通了:

    $item->{'@MyKey'}
    

    【讨论】:

    • 请注意,您还可以将 json 解码为普通数组,方法是将 true 作为第二个参数传递:json_decode(..., true)
    • 确保将其标记为正确答案,以帮助未来的访问者。也许您还可以提供一些参考或文档来解释您的解决方案?
    • @FreshPrinceOfSO 再过两天我不能接受自己的答案。
    【解决方案2】:

    您可以使用 curly 语法访问它们。示例:

    $json = '{ "@test"  : { "@foo" : "bar" }}';
    
    $obj = json_decode($json);
    
    echo $obj->{'@test'}->{'@foo'};
    

    【讨论】:

      【解决方案3】:

      您可以将项目转换为数组并正常使用数组访问器

      $itemArray = (array)$item; 
      
      echo $itemArray["@MyKey"];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-05-01
        • 1970-01-01
        • 2019-12-20
        • 1970-01-01
        • 2012-02-08
        • 2018-07-12
        • 1970-01-01
        相关资源
        最近更新 更多