代码之家  ›  专栏  ›  技术社区  ›  kevinabraham

当标识符以@符号开头时,如何在php中访问对象?

  •  3
  • kevinabraham  · 技术社区  · 7 年前

    我有一个json对象,看起来像这样:

    {#119130 ▼
      +"@id": "1EBEF5DA"
      +"@name": "The"
      +"@renewal": "xxxxx"
      +"@languages": "Eng"
    }
    

    当标识符以 @ 象征

    $var->@id 导致错误:

    Parse error: syntax error, unexpected '@', expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$'
    

    我试过了 $var->id Undefined Property

    3 回复  |  直到 7 年前
        1
  •  5
  •   d_void    7 年前

    使用此选项:

    $a = '{"@id":"123","@idx":"2232"}';
    $b = json_decode($a);
    print_r($b);
    echo $b->{'@id'};
    
        2
  •  3
  •   Niklesh Raut    7 年前

    $test 和使用 $var->$test

     <?php
        $arr = json_decode(json_encode(["@id"=> "1EBEF5DA"]));
        $obj = '@id';
        print_r($arr->$obj);
     ?>
    

    演示: https://eval.in/844662

    或者另一种方式是 print_r($arr->{'@id'});

    https://eval.in/844662

        3
  •  3
  •   Nigel Ren    7 年前

    试着这样做:

    $idFieldName = '@id';
    $var->$idFieldName;