2008-10-20 6 views
5

मैं कुछ PHP वाक्यविन्यास से थोड़ा उलझन में हूं जो मैंने पार किया है।

$k = $this->_tbl_key; 

if($this->$k) 
{ 
    $ret = $this->_db->updateObject($this->_tbl, $this, $this->_tbl_key, $updateNulls); 
} 
else 
{ 
    $ret = $this->_db->insertObject($this->_tbl, $this, $this->_tbl_key); 
} 

मेरा प्रश्न मूल रूप से $this->$k क्या मतलब है है: यहाँ एक उदाहरण है? मुझे लगा कि इसका मतलब हो सकता है कि सदस्य चर जो $this->_tbl_key में जो कुछ भी है, उसके नाम से जाता है, लेकिन यह कैसे काम करेगा? क्या रन-टाइम पर कक्षा में सदस्य चर जोड़ना संभव है?

उत्तर

19

यह "के" का मूल्य जो भी हो, और एक वैरिएबल नाम के रूप में इसका इलाज करेगा। इन दो नमूनों की हैं:

echo ($obj->myvar); 

#### 

$k = "myvar"; 
echo ($obj->$k); 
+0

ठीक है, यही वह है जो मैंने शुरू किया था - मुझे यह पता होना चाहिए कि वह चर कहां से आ रहा है। –

5

मुझे विश्वास है कि variable variables का एक मामला है।

+0

हालांकि, यह बहुत अधिक नहीं है। जॉन मिलिकिन का जवाब सही है। –

+3

@ गेटेट: इसे छोड़कर? –

+0

जॉन का जवाब अधिक पूरा है लेकिन पाओलो सही है। यह एक विविध नामित चर है। यदि आप ओओपी उपयोग के संदर्भ में अधिक विशेष रूप से सोचना चाहते हैं तो आप इसे एक परिवर्तनीय संपत्ति भी कह सकते हैं (जिसे पाओलो के लिंक में वर्णित किया गया है)। –

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