2012-09-24 29 views
10

आप PHP ऑब्जेक्ट की गुणों का उपयोग कैसे करते हैं?PHP ऑब्जेक्ट गुणों तक पहुंचने के लिए वाक्यविन्यास क्या है?

इसके अलावा, क्या $this->$property1 बनाम $this->property1 के साथ एक वस्तु की संपत्ति तक पहुँचने के बीच का अंतर है?

जब मैं $this->$property1 इस्तेमाल करने की कोशिश मैं निम्नलिखित त्रुटि मिलती है:

'PHP: Cannot access empty property'.

PHP के documentation वस्तु गुणों पर एक टिप्पणी है जो इस का उल्लेख है, लेकिन टिप्पणी वास्तव में गहराई में व्याख्या नहीं करता।

+0

इस मैनुअल पेज बजाय अनुभाग ले लो और "चर संपत्ति के नाम" के लिए देखो आपके लिए भी दिलचस्प हो सकता है) (आपके द्वारा अपने उत्तर में लिंक किए गए पृष्ठ पर पाया गया है, आपको दस्तावेज़ों को अधिक सावधानीपूर्वक पढ़ना चाहिए) – hakre

+0

आप ओओपी के साथ नीचे आ गए हैं? हाँ आप मुझे जानते हैं –

उत्तर

6
  1. $property1 // विशिष्ट चर
  2. $this->property1 // विशिष्ट विशेषता

वर्गों पर सामान्य उपयोग के बिना "$" अन्यथा आप एक चर $property1 कहा जाता है कि किसी भी मूल्य ले सकता है बुला रहे हैं है।

उदाहरण: http://php.net/manual/en/language.variables.variable.php (पहला भाग:

class X { 
    public $property1 = 'Value 1'; 
    public $property2 = 'Value 2'; 
} 
$property1 = 'property2'; //Name of attribute 2 
$x_object = new X(); 
echo $x_object->property1; //Return 'Value 1' 
echo $x_object->$property1; //Return 'Value 2' 
9

$this->property1 का अर्थ है:

वस्तु का उपयोग करें और चर property1 इस वस्तु

$this->$property1 के लिए बाध्य कर पाने का अर्थ है:

स्ट्रिंग $ property1 का मूल्यांकन करें और परिणाम का उपयोग चर $ द्वारा नाम पाने के लिए संपत्ति 1 परिणाम इस ऑब्जेक्ट से बंधे

+0

एक और एसओ उपयोगकर्ता जो एक PHP मैनुअल पेज को एक जवाब में बदल सकता है। बधाई! – hakre

+0

क्या वह कटाक्ष है? –

+0

@ hakra मैनुअल के लिए लिंक आमतौर पर उत्तर नहीं माना जाता है, क्योंकि वे लिंक बदलते हैं ... हालांकि, मैं सहमत होगा कि एक उद्धरण और/या स्रोत के लिए एक लिंक उत्तर के लिए एक अच्छा संस्करण होगा –

3

property1 एक स्ट्रिंग है जबकि $property1 एक चर है। तो $this->$property1 PHP का उपयोग करते समय $property1 नामक चर की सामग्री की तलाश होती है और क्योंकि यह (संभवतः) मौजूद नहीं है, यह खाली है इसलिए आपको Cannot access empty property त्रुटि मिलती है।

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

  • कोई संबंधित समस्या नहीं^_^