assign by value এবং assign by reference

ডিফল্ট হিসেবে PHP তে ভেরিয়েবল ভ্যালু দ্বারা অ্যাসাইন হয়। যদি কোন ভেরিয়েবলে কোন এক্সপ্রেশন অ্যাসাইন করা হয় তবে এক্সপ্রেশনের ভ্যালু উক্ত ভেরিয়েবলে কপি হয়।

1. <?php
2.      $name = "The";
3.      $name2 = $name;
4.      $name2 = "The Learner";
5.      echo $name . "<br>";
6.      echo $name2;
7. ?>

আউটপুটঃ

The
The Learner

কোড বিশ্লেষনঃ

১। PHP ট্যাগ শুরু করা হয়েছে।
২। $name নামে ভেরিয়েবল ডিক্লেয়ার করে ভ্যালু হিসেবে "The" অ্যাসাইন করা হয়েছে।
৩। $name2 নামে ভেরিয়েবল ডিক্লেয়ার করা হয়েছে এবং ভ্যালু হিসেবে $name ভেরিয়েবল অ্যাসাইন করা হয়েছে। (এরফলে $name2 ভেরিয়েবলে $name ভেরিয়েবলের ভ্যালু কপি হবে।)
৪। $name2 ভেরিয়েবলে পুনরায় নতুন ভ্যালু "The Learner" অ্যাসাইন করা হয়েছে। (এরফলে $name2 এর পূর্বের ভ্যালু রিপ্লেস হয়ে যাবে।)
৫। $name ভেরিয়েবলের ভ্যালু প্রিন্ট করা হয়েছে।
৬। $name2 ভেরিয়েবলের ভ্যালু প্রিন্ট করা হয়েছে।
৭। PHP ট্যাগ শেষ করা হয়েছে।

এখানে $name2 ভেরিয়েবলের ভ্যালু পরিবর্তন করার কারণে $name ভেরিয়েবলের ভ্যালুর কোন পরিবর্তন হয়নি। এর কারন হচ্ছে $name2 তে $name এর ভ্যালু কপি হয়েছিল। আর এভাবে ভ্যালু অ্যাসাইন করা কে বলে assign by value.

PHP তে অন্য আরেকটি উপায়ে ভেরিয়েবলে ভ্যালু অ্যাসাইন করা যায় যাকে বলে assign by reference. যেমনঃ

1. <?php
2.      $name = "The";
3.      $name2 = &$name;
4.      $name2 = "The Learner";
5.      echo $name . "<br>";
6.      echo $name2;
7. ?>

আউটপুটঃ

The Learner
The Learner

১। PHP ট্যাগ শুরু করা হয়েছে।
২। $name ডিক্লেয়ার করে ভ্যালু হিসেবে "The" অ্যাসাইন করা হয়েছে।
৩। $name2 নামে নতুন ভেরিয়েবল ডিক্লেয়ার করা হয়েছে এবং ভ্যালু হিসেবে $name ভেরিয়েবলের reference অ্যাসাইন করা হয়েছে। (ভেরিয়েবলের নামের আগে অ্যামপারস্যান্ড সাইন(&) ব্যবহার করে reference অ্যাসাইন করা হয়।)
৪। $name ভেরিয়েবলের ভ্যালু পুনরায় পরিবর্তন করে নতুন ভ্যালু "The Learner" অ্যাসাইন করা হয়েছে।
৫। $name ভেরিয়েবল প্রিন্ট করা হয়েছে।
৬। $name2 ভেরিয়েবল প্রিন্ট করা হয়েছে।
৭। PHP ট্যাগ শেষ করা হয়েছে।

reference অ্যাসাইন করার ফলে এখন আর assign by value এর মত $name2 ভেরিয়েবলে $name ভেরিয়েবলের ভ্যালু কপি হয়নি বরং এখন $name2 ভেরিয়েবলে $name ভেরিয়েবলের reference অ্যাসাইন হয়েছে। পরবর্তীতে যখন $name2 এর ভ্যালু পরিবর্তন করা হয়েছে তখন $name ভেরিয়েবলের ভ্যালুও পরিবর্তন হয়ে গেছে।

reference ব্যবহার করে ভেরিয়েবলে ভ্যালু অ্যাসাইন করাকে বলে assign by reference.

Comments

Popular posts from this blog

The Superstar Of Hell

অ্যাডাম টিজিং

কুরবানীর গুরুত্বপূর্ণ ৭১ টি মাসআলা