मैं php में एक चर के रूप में नामित एक वस्तु संपत्ति का उपयोग कैसे कर सकता हूं?


103

JSON में एन्कोड किए गए Google API ने इस तरह एक ऑब्जेक्ट लौटाया

[updated] => stdClass Object
(
 [$t] => 2010-08-18T19:17:42.026Z
)

किसी को भी पता है कि मैं $tमूल्य का उपयोग कैसे कर सकता हूं ?

$object->$t जाहिर है लौटता है

सूचना: अपरिभाषित चर: tin / usr / स्थानीय / ...

घातक त्रुटि: / ... में खाली संपत्ति तक नहीं पहुंच सकता

जवाबों:


222

चूंकि आपकी संपत्ति का नाम स्ट्रिंग है '$t', आप इसे इस तरह एक्सेस कर सकते हैं:

echo $object->{'$t'};

वैकल्पिक रूप से, आप संपत्ति का नाम एक चर में रख सकते हैं और इसे इस तरह उपयोग कर सकते हैं:

$property_name = '$t';
echo $object->$property_name;

आप इन दोनों को कार्रवाई पर repl.it पर देख सकते हैं: https://repl.it/@jrunning/SpiritedTroubledWorkspace


1
क्या होगा अगर बस "गूंज $ वस्तु -> $ संपत्ति_नाम" उद्धरण के बिना उपयोग किया जाता है। काम करने लगता है, लेकिन क्या यह केवल नए php संस्करणों के लिए है?
लैमी

3
@Larry ओपी के मामले उद्धरण की जरूरत है, क्योंकि $t है गुण का नाम, नहीं एक चर युक्त गुण का नाम।
जॉर्डन रनिंग

2
चार साल बाद मुझे एहसास हुआ कि मैंने @Lamy टिप्पणी को गलत बताया है। आप बिल्कुल सही कह रहे हैं, लैमी। यदि मान $property_nameस्ट्रिंग है '$t'तो echo $object->$property_nameठीक काम करता है। मैंने अपना उत्तर अपडेट कर दिया है। धन्यवाद और क्षमायाचना!
जॉर्डन

हैलो। मैं इस उत्तर का उपयोग कर सकता हूं लेकिन केवल दोहरे उद्धरण चिह्नों के साथ, @JordanRunning - क्या आप सुनिश्चित हैं कि यह एकल उद्धरण के साथ सही है?
वाल्टर एकहोम

यह केवल उद्धरण चिह्नों के बिना काम करता है, जो मैं php 7 का उपयोग कर रहा हूं
moretz



5

मैं php7 का उपयोग कर रहा हूं और निम्नलिखित मेरे लिए ठीक काम करता है:

class User {
    public $name = 'john';
}
$u = new User();

$attr = 'name';
print $u->$attr;

0

यह php 5 और 7 पर काम करता है

$props=get_object_vars($object);
echo $props[$t];
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.