2011-01-11 13 views
10

से शुरू होता है मेरे पास कुछ जेसन ऑब्जेक्ट है जिसे मैंने डीकोड किया है, और गुणों में से एक "@" से शुरू होता है और मैं php के साथ तत्व तक नहीं पहुंच सकता क्योंकि यह एक त्रुटि फेंकता है।PHP में stdClass के सदस्य को कैसे एक्सेस करें जो @

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

मैं गुणों तक पहुंचने के लिए कैसे जाउंगा?

+0

यह नहीं बल्कि लगता है कि उस SimpleXmlEle से कुछ अजीब रूपांतरण था एक StdClass के लिए ment। क्या आप कृपया स्पष्टीकरण दे सकते हैं कि आपको डंप कैसे मिला? – Gordon

+0

यह जेएसओएन से एक्सएमएल नहीं है :) – bensiu

उत्तर

26

आप एक स्ट्रिंग तक पहुँच सकते हैं

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

अधिक जानकारी के लिए कैसे चर पर परिभाषित कर रहे हैं और उपयोग किया गया, निम्न दस्तावेज़ देखें:

  • Variable Basics - सीखने के लिए उपयोगी क्या स्ट्रिंग का उपयोग किए बिना चर के रूप में उपयोग किया जा सकता है।
  • Variable Variables - हमने चर को दूसरे चर के नाम के रूप में कार्य करने के लिए कैसे उपयोग किया। यह इसलिए सावधानी से चलने
9

आप ऐसा कर सकता है:

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

या एक चर:

$object->{'@attributes'} 
2

सीधी पहुँच ircmaxwell या रिचर्ड Tuin से नीचे है खतरनाक हो सकता है, फिर भी आप सच दूसरा परम JSON डिकोड और recive सरणी insted क्या उपयोग करने के लिए उपयोग करने के लिए

3

कोशिश एक आसान हो सकता है कर सकते हैं ,

$objSimpleXml->attributes()->id 

नमूना कोड का संदर्भ लें करने के लिए

संबंधित मुद्दे