2011-01-11 27 views
10

Tôi có một số đối tượng json mà tôi đã giải mã và một trong các thuộc tính bắt đầu bằng "@" và tôi không thể truy cập phần tử bằng php vì nó ném một lỗi.Cách truy cập thành viên của stdClass bằng PHP bắt đầu bằng @

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

Tôi làm cách nào để truy cập các thuộc tính?

+0

này thay vì có vẻ như nó là một số chuyển đổi kỳ lạ từ một SimpleXmlEle với một StdClass. Bạn có thể làm rõ làm thế nào bạn có bãi chứa? – Gordon

+0

đây là chuyển đổi từ JSON chứ không phải XML :) – bensiu

Trả lời

26

Bạn có thể truy cập nó bằng một chuỗi:

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

Hoặc một biến:

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

Để biết thêm thông tin về các biến như thế nào được định nghĩa và được sử dụng, hãy xem các tài liệu sau:

  • Variable Basics - Hữu ích cho việc tìm hiểu những gì có thể được truy cập dưới dạng biến mà không cần sử dụng chuỗi.
  • Variable Variables - Cách chúng tôi sử dụng biến để hoạt động như tên cho một biến khác. Điều này có thể nguy hiểm do đó bước đi cẩn thận
9

Bạn có thể làm điều này:

$object->{'@attributes'} 
2

truy cập trực tiếp dưới từ ircmaxwell hoặc Richard Tuin, tuy nhiên bạn có thể giải mã JSON với param thứ hai đúng và recive mảng insted những gì có thể là một dễ dàng hơn để truy cập

3

Cố gắng sử dụng ,

$objSimpleXml->attributes()->id 

Sample Code để tham khảo

Các vấn đề liên quan