PHP Variable পর্ব-৪: Reference Variable

PHP Reference Variable কি ?

PHP Reference Variable হচ্ছে কোনো একটা নির্দিষ্ট variable এর value বা content এ ভিন্ন ভিন্ন Variable নামে ব্যবহার করতে পারা। অনেকটা Windows OS এর Shortcut Links অথবা Linux OS এর Symbolic Links এর মতো। PHP তে Reference ঘোষণা করতে হলে , Variable এর সামনে একটা & চিহ্ন (ampersand sign) দিতে হয়।

PHP তে Reference Variable দিয়ে আমরা কি করতে পারি?

PHP তে Reference ব্যবহার করে আমরা তিনটি মৌলিক কাজ করতে পারি

  • Assigning by Reference বা একই content বা value তে দুইটি variable কে assign বা নির্ধারিত করা
  • Passing by Reference বা Reference দিয়ে কোনো Variable কে function এ পাঠানো
  • Returning References বা function থেকে Reference Return করা।

Assigning by Reference কি?

PHP তে যখন একই content বা value এর জন্য দুইটি variable কে assign বা নির্ধারিত করা হয় , PHP এর পরিভাষায় একে বলা হয় Assigning by Reference. নিচের উদাহরণ থেকে আরেকটু ভালো ভাবে বুঝে নেয়া যাক

<?php
$a = "Hi there";
$b = $a;
$b = "See you later";
echo $a; // Displays "Hi there"
echo $b; // Displays "See you later"
?>

ব্যাখ্যা: উপরের কোডে $a varible কে $b তে assign বা নির্দিষ্ট করার পর ও $a এবং $b দুইটি সম্পূর্ণ স্বাধীন দুইটি ভ্যারিয়েবল। এবং দুইটি ভ্যারিয়েবলের Output বা ফলাফল সম্পূর্ণ ভিন্ন। $b ভ্যারিয়েবল তার সর্বশেষ Value “See you later” ই ফলাফল হিসাবে দেখাচ্ছে। $a variable এর value হিসাবে “Hi There” দেখাচ্ছেনা। এখন আমরা যদি $a variable কে $b এর সাথে reference করে দেই, তাহলে $a এবং $b দুটি variable ই সবসময় একই value ধারণ করবে।
চলুন নিচের উদাহরণ থেকে বুঝে নেয়া যাক :

<?php
$a = "Hi there";
$b = &$a;
$b = "See you later";
echo $a; // Displays "See you later"
echo $b; // Displays "See you later"
?>

ব্যাখ্যা:শুধু মাত্র reference এর কারণে আমরা দুইটা Variable এর Value সব সময় একই পাবো। আবার $a এর Value যদি পরিবর্তন করেন , তাহলে $b এর value ও পরিবর্তন হয়ে যাবে। নিচের উদাহরণ লক্ষ্য করুন :

<?php
$a = "Hi there";
$b = &$a;
$b = "See you later";
$a="GoodBye!";
echo $a; // Displays "GoodBye!"
echo $b; // Displays "GoodBye!"

Passing by Reference কি?

PHP তে Reference দিয়ে যখন কোনো Variable কে function এ পাঠানো হয়। তখন তাকে বলা হয় Passing By Reference. আর এই কাজটি করতে হলে আপনাকে PHP তে Function Define করার সময় Parameter এর আগে একটা & চিহ্ন (ampersand sign) দিতে হয়। আর এতে সুবিধা হচ্ছে function এর ভিতরে Parameter এর Value পরিবর্তন হওয়ার সাথে সাথে আপনার পাঠানো Variable টির Value ও পরিবর্তন হয়ে যাবে । নিচের উদাহরণ থেকে দেখা যাক।

function goodbye( &$greeting ) {
  $greeting = "See you later";
}
  
$myVar = "Hi there";
goodbye( $myVar );
echo $myVar; // Displays "See you later"

ব্যাখ্যা:লক্ষ্য করুন Function এর ভিতরের Parameter $greeting এর Value “See you Later” হওয়াতে Function এর বাহিরের Variable $myVar এর Value “Hi there” এর পরিবর্তে “See you later ” হয়ে গেছে।

আরো একটা উদাহরণ দেখি :

<?php
function foo(&$var)
{
    $var++;
}
 
$a=5;
foo($a);
echo  $a; // $a is 6 here
?>

ব্যাখ্যা:এখানেও একইভাবে Function এর ভিতরের Parameter $varএর Value Increment হওয়াতে Function এর বাহিরের Variable $aএর Value 5 এর পরিবর্তে 6 হয়ে গেছে।

Returning References কি?

PHP তে Reference সহ যখন কোনো Variable কে function থেকে return বা প্রত্যাবর্তন করা হয় । তখন তাকে বলা হয় Returning By Reference. আর এই কাজটি করতে হলে আপনাকে PHP তে function এর নামের আগে একটা & চিহ্ন (ampersand sign) দিতে হবে। সেই সাথে আপনি যখন কোনো variable এ function call করবেন, তখনও (=) চিহ্ন (equal sign) এর সাথে একটা & চিহ্ন (ampersand sign) দিতে হবে। আর এতে সুবিধা হচ্ছে আপনি যেই variable এর মধ্যে function টি call করলেন , সেই variable এর value পরিবর্তন হলে function এর return value ও পরিবর্তন হয়ে যাবে। । নিচের উদাহরণ থেকে দেখা যাক।

<?php
$a = 10;
  
function &test() {
  global $a;
  return $a;
}
  
$b =&test();
$b--;
echo "\$a = $a<br>";  // Displays "9"
echo "\$b = $b<br>";  // Displays "9"
?>

ব্যাখ্যা:লক্ষ্য করুন এখানে $b এর মান পরিবর্তন হওয়ার সাথে সাথে $a এর মান ও পরিবর্তন হয়ে গেছে। আর এটা সম্ভব হয়েছে Returning by Reference এর কারণে।

Leave A Reply

Your email address will not be published. Required fields are marked *