2010-01-19 12 views
11

मेरे पास एक PHP ऑब्जेक्ट है जिसमें एक विशेषता है जिसमें $ ($) साइन है।मैं एक डॉलर ऑब्जेक्ट विशेषता वाले PHP ऑब्जेक्ट विशेषता का उपयोग कैसे करूं?

मैं इस विशेषता की सामग्री तक कैसे पहुंचूं?

उदाहरण:

echo $object->variable; // Ok 

echo $object->variable$WithDollar; // Syntax error :-(
+0

इसे पहले करने का प्रयास करें: 'vardump ($ ऑब्जेक्ट);', फिर परिणाम की जांच करें। –

+2

यदि यह किसी SQL क्वेरी से आ रहा है, तो शायद आपको उस फ़ील्ड का नाम एसक्यूएल में बदलना चाहिए (यानी, 'वैरिएर $ withDollar var varoutoutdollar' चुनें)। – JAL

+0

@ कोड डक: हाँ, मैं कर सकता था, यही वह है जो मैंने अभी तक किया था, मैं यह पता लगाने की कोशिश कर रहा था कि यह सीधे PHP में संभव था या नहीं। – kevin

उत्तर

37
  1. variable variables के साथ:

    $myVar = 'variable$WithDollar'; 
    echo $object->$myVar; 
    
  2. कर्ली कोष्ठक के साथ:

    echo $object->{'variable$WithDollar'}; 
    
+0

क्या आप स्ट्रिंग चर के साथ मतलब है? –

+0

नहीं, परिवर्तनीय चर सही शब्द है। लेकिन परिवर्तनीय नामों में $ अवैध है ... –

+1

@ जेन, यह इस तथ्य को नहीं बदलेगा कि आप नाम में $ एक के साथ एक चर या संपत्ति प्राप्त कर सकते हैं ... – nickf

3

मुझे लगता है कि आप फ्लाई पर चर नामों वाले गुणों का उपयोग करना चाहते हैं। उसके लिए, कोशिश

echo $object->{"variable".$yourVariable} 
+1

मैं उन्हें नहीं बना रहा हूं, वे एक SQL क्वेरी के परिणाम हैं। यही वह नहीं है जो मैं करने की कोशिश कर रहा हूं। – kevin

+0

आप ऐसा कर सकते हैं। इसे आज़माएं: 'x x = 'a $ b'; $$ x = 'foo'; print_r (get_defined_vars()); ' – nickf

+0

@nickf: अच्छा बिंदु, हटा दिया गया। –

1

वहाँ प्रतिबिंब तरीकों कि भी आप विधि के निर्माण के लिए अनुमति देते हैं और ऐसे नाम हैं जो चर द्वारा बनाया जा सकता है या विशेष वर्ण का श्रेय है। आप ReflectionClass :: getProperty (स्ट्रिंग $ नाम) विधि का उपयोग कर सकते हैं।

$object->getProperty('variable$WithDollar');

+2

आपको वहां एकल कोट्स का उपयोग करना होगा। – nickf

1

आप नहीं है।

PHP साइन में PHP का विशेष महत्व है। हालांकि dereferencing वर्ग/ऑब्जेक्ट गुणों में परिवर्तनीय प्रतिस्थापन को बाईपास करना संभव है, आपको कभी भी ऐसा नहीं करना चाहिए।

एक शाब्दिक '$' के साथ चर घोषित करने की कोशिश न करें।

यदि आपको किसी की गड़बड़ी से निपटना है - पहले डॉलर को हटाने के लिए लिखे गए कोड को ठीक करें और फिर अपनी उंगलियों को काट लें।

सी

+1

कुछ सॉफ्टवेयर जो प्राथमिक रूप से डेटाबेस चलाते हैं 20 साल पुराना है। मेरा विश्वास करो मुझे केवल पढ़ने योग्य कॉलम नाम (और उदाहरण के लिए एएफ $ एटी 1 नहीं) पसंद है, मैं डेटाबेस के साथ संचार कर रहा हूं और उस पर कुछ भी नहीं बदल सकता! – kevin

3

अपने जवाब के लिए धन्यवाद, मैं सिर्फ पता चला कि कैसे मैं इस तरह से मैं इरादा कर सकते हैं:

echo $object->{'variable$WithDollar'}; // works ! 

मैं बहुत यकीन है कि मैं पहले हर संयोजन संभव कोशिश की थी।

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