মধ্যে পার্থক্য কি 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()তবে আপনার এই ধরণের ওয়ার্কগুলি করা দরকার two দুটি ক্ষেত্রের জন্য আপনার কল সেটডাটা ফাংশনটি দ্বৈত প্রয়োজন।
$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ক্লাস ফাংশন।
লুপ ব্যবহার করে সেট ক্ষেত্রের মান জন্য lib ফাইল এ setData () ব্যবহার করে addData ()।
public function addData(array $arr)
{
foreach($arr as $index=>$value) {
$this->setData($index, $value);
}
return $this;
}
setDataএকটি কল দিয়ে একাধিক ক্ষেত্র সেট করতে ব্যবহার করতে পারেন ।
$obj->setData('k2'=>'v2399393')? :-) (আপনি যদি নিজের উত্তরে এই নির্দিষ্ট পয়েন্টটি যোগ করেন তবে দুর্দান্ত)