मुझे आश्चर्य है कि $this->name
और $this->$name
के बीच क्या अंतर है? $this
को कड़ाई से नामित किया जाना चाहिए या यह कुछ भी हो सकता है?
उत्तर
$this
एक आरक्षित चर नाम है और इसे किसी और चीज़ के लिए उपयोग नहीं किया जा सकता है। यह विशेष रूप से उस ऑब्जेक्ट को इंगित करता है जिसमें आप वर्तमान में काम कर रहे हैं। आपको $this
का उपयोग करना होगा क्योंकि आप नहीं जानते कि किस चर वस्तु को असाइन किया जाएगा।
$this->name
name
$this->$name
वर्ग चर जो कुछ भी की $name
का मूल्य है को संदर्भित करता है वर्तमान वर्ग के चर को दर्शाता है। इस प्रकार
$name = "name";
echo $this->$name; // echos the value of $this->name.
$name = "test";
echo $this->$name; // echos the value of $this->test
$ इस एक आरक्षित पीएचपी में इस्तेमाल (quoting) में वर्ग आप इसे प्रयोग कर रहे हैं की वर्तमान उदाहरण को इंगित करने के नाम है:
छद्म चर
$this
उपलब्ध है जब किसी विधि को ऑब्जेक्ट संदर्भ में से कॉल किया जाता है।$this
एक संदर्भ बुला वस्तु (विधि अंतर्गत आता है आमतौर पर वस्तु जो करने के लिए, लेकिन संभवतः किसी अन्य वस्तु, अगर विधि एक माध्यमिक वस्तु की संदर्भ से स्थिर कहा जाता है) के लिए है।
जब $this->name
उपयोग कर, आप नाम वर्तमान वस्तु के name
साथ संपत्ति तक पहुँच रहे हैं। आप संपत्ति जो नाम $name
स्थानीय चर में निहित है पर पहुंच जाएंगे, जिसका अर्थ है -
जब $this->$name
का उपयोग कर, $ नाम संपत्ति एक्सेस करने से पहले निर्धारित किया जाता है।
, कोड के इस भाग के साथ:
$name = 'abc';
echo $this->$name;
आप, एबीसी संपत्ति की सामग्री वास्तव में गूंज जाएगा जैसे कि आप लिखा था:
echo $this->abc;
जब ऐसा कर रही है, आप का उपयोग कर रहे variable variables(के हवाले से):
कक्षा गुण एक हो सकता है परिवर्तनीय संपत्ति नामों का उपयोग कर तक पहुंचा जा सकता है।
परिवर्तनीय संपत्ति का नाम होगा जो कॉल के दायरे में हल किया गया है।
उदाहरण के लिए, यदि आप एक अभिव्यक्ति है ऐसे$foo->$bar
के रूप में, तो स्थानीय गुंजाइश$bar
के लिए जांच की जाएगी और इसके मूल्य रूप$foo
की संपत्ति के नाम पर इस्तेमाल किया जाएगा।
यह भी सत्य है यदि $ bar एक सरणी पहुंच है।
यह प्रश्न अभी अपडेट के बाद पॉप अप हो गया है। मुझे सवाल पसंद आया, इसलिए मैंने सोचा कि मैं अंतर का अपना उदाहरण जोड़ूंगा।
class Test
{
public $bar = 'bar';
public $foo = 'foo';
public function __construct()
{
$bar = 'foo';
$this->bar; // bar
$this->$bar; // foo
}
}
- 1. मॉड्यूल <name> = संरचना के बीच अंतर .. अंत और मॉड्यूल प्रकार <name> = संरचना .. अंत?
- 2. [PersistenceUnit: <name>]: EntityManagerFactory
- 3. जावास्क्रिप्ट में var name = function() {} और फ़ंक्शन नाम() {} के बीच कोई अंतर है?
- 4. जावास्क्रिप्ट में 'name` कीवर्ड क्या है?
- 5. getClass()। GetMethod ("name", अज्ञात)
- 6. Django टेम्पलेट datetime.weekday name
- 7. <servlet-name> web.xml के <filter-mapping> के अंदर, इसका क्या अर्थ है?
- 8. $-> रेंडर() और $ this-> रीडायरेक्ट()
- 9. `__import __ ('pkg_resources') क्या है। Declare_namespace (__ name __) 'क्या करें?
- 10. <%# %> और <%= %> के बीच क्या अंतर है?
- 11. > = और => के बीच क्या अंतर है?
- 12. बैश में ">" और "&>" के बीच क्या अंतर है?
- 13. कोडइग्निटर में $ query> num_rows() और $ this-> db-> count_all_results() के बीच अंतर और किसकी सिफारिश की जाती है
- 14. Request.Form ["name"] शून्य कब और खाली स्ट्रिंग कब होता है?
- 15. पायथन में 'if name == "__main __" का अर्थ क्या है?
- 16. क्या HTML5 में एकाधिक डेटा- {name} एट्रिब्यूट होना संभव है?
- 17. जावास्क्रिप्ट कार्यों में var और this के बीच अंतर?
- 18. Git diff --name-केवल और कॉपी उस सूची
- 19. jQuery सिंटेक्स त्रुटि, अपरिचित अभिव्यक्ति: [name = Basics.Gender]
- 20. केकपीएचपी में मॉडल-> ऊर्फ और मॉडल-> नाम के बीच क्या अंतर है?
- 21. PHP में :: और -> के बीच अंतर?
- 22. क्यों defun समान नहीं है (setq <name><lambda>)?
- 23. "<>" और "! =" के बीच क्या अंतर है?
- 24. कोलन ":" और वसा तीर के बीच क्या अंतर है "=>"
- 25. >>> और >> ऑपरेटरों के बीच अंतर
- 26. क्या सफेद स्थान की अनुमति है betwee mime header field-name और ':' विभाजक
- 27. ब्राउज़र और नोड के बीच क्या अंतर है?
- 28. पर्ल में '$ this`,' @ that`, और `% उन 'के बीच क्या अंतर है?
- 29. क्या हमें $ _FILES ['filename'] ['name'] को sanitize करना चाहिए?
- 30. सी ++ - (*) के बीच अंतर। और ->?
आपको अपने वाक्यविन्यास में कोई त्रुटि है। डबल कोट्स के साथ सिंगल कोट्स मिलाकर हम हैं? (इसे ठीक करने का प्रयास किया, और आपने मुझे ओवरराइट किया) –
@ चाचा: एर्ग, एक बार फिर, सुबह बहुत जल्दी ^^ धन्यवाद यह देखने के लिए धन्यवाद :-) - हुहु, हम दोनों ने उस समस्या को ठीक करने के लिए अपना जवाब संपादित किया, मैं देखता हूं :- डी ;; और हमने एक ही समय में हमारी टिप्पणियां संपादित की :- डी –
यदि हम प्रोग्रामिंग कर रहे थे, तो हम डूब जाएंगे क्योंकि स्टैक ओवरफ्लो में टिप्पणी चेकआउट/ताले नहीं हैं :) –