बीच क्या अंतर है setData()
और addData()
? क्या कोई कनेक्शन है अगर मैं किसी उत्पाद को अपडेट करता हूं या नया सेट करता हूं?
बीच क्या अंतर है setData()
और addData()
? क्या कोई कनेक्शन है अगर मैं किसी उत्पाद को अपडेट करता हूं या नया सेट करता हूं?
जवाबों:
setData
मौजूदा डेटा को ओवरराइड करता है और पैरामीटर के रूप में या तो एक जोड़ी की-वैल्यू के रूप में प्राप्त कर सकता है।
यदि आप एक जोड़ी की-वैल्यू पैरामीटर के रूप में सेट करते हैं तो $_data[key]
बन जाता है value
। यदि आप पैरामीटर के रूप में सेट करते हैं, तो एक सरणी $_data
उस सरणी को अधिलेखित कर देता है जो कभी भी पहले निहित था।
उदाहरण:
$_data = array('k1' => 'v1' , 'k2' => 'v2');
में कॉलिंग $obj->setData('k3','v3')
परिणाम
$_data = array('k1' => 'v1' , 'k2' => 'v2', 'k3'=>'v3');
में कॉलिंग $obj->setData(array('k3'=>'v3'))
परिणाम
$_data = array('k3'=>'v3');
में कॉलिंग $obj->setData('k2','v2000')
परिणाम
$_data = array('k1' => 'v1' , 'k2' => 'v2000')
में कॉलिंग $obj->setData(array('k2'=>'v2000'))
परिणाम
$_data = array('k2'=>'v2000');
addData
केवल एक सरणी के रूप में पैरामीटर प्राप्त करता है और यह उस सरणी को मौजूदा डेटा के साथ विलय कर देता है।
उदाहरण:
$_data = array('k1' => 'v1' , 'k2' => 'v2');
में कॉलिंग $obj->addData(array('k3'=>'v3'))
परिणाम
$_data = array('k1' => 'v1' , 'k2' => 'v2', 'k3'=>'v3');
लेकिन कॉलिंग में $obj->addData(array('k2'=>'v2000'))
परिणाम है
$_data = array('k1' => 'v1' , 'k2' => 'v2000');
$obj->setData('k2'=>'v2399393')
और नहीं$obj->setData(array('k2'=>'v2000'))
setData ()
समारोह है only set one field value on one call
। यह कर सकते हैं set multiple field value using multiple call of setData function
।
addData () फ़ंक्शन हैset multiple field values using array with array key as field index.
बस उदाहरण:
आप ऑब्जेक्ट पर सेट करने के लिए दो फ़ील्ड चाहते हैं।
अगर मैं उपयोग करता हूं setData()
तो आपको इस प्रकार के कार्य करने की आवश्यकता है। दो क्षेत्रों के लिए आपको कॉल सेटडाटा फ़ंक्शन दो बुद्धिमान की आवश्यकता है।
$ObVarien->setData('fieldA',$X);
$ObVarien->setData('fieldB',$Y);
लेकिन अगर मैं उपयोग addData()
कर रहा हूं तो आप ऐसा कर सकते हैंarray key as field name
$Data=array('fieldA'=>$X,'fieldb'=>$Y)
$ObVarien->addData($Data)
addData () और setData () दो लाइब्रेरी Varien_Object
क्लास फ़ंक्शन हैं।
addData () setData का उपयोग करके () लूप का उपयोग करते हुए सेट फ़ील्ड मान के लिए lib फ़ाइल पर।
public function addData(array $arr)
{
foreach($arr as $index=>$value) {
$this->setData($index, $value);
}
return $this;
}
setData
एक कॉल के साथ एक से अधिक फ़ील्ड सेट करने के लिए उपयोग कर सकते हैं ।
$obj->setData('k2'=>'v2399393')
तब क्या होता है ? :-) (महान यदि आप अपने उत्तर में इस विशिष्ट बिंदु को जोड़ते हैं)