PHP Variable Scope

পিএইচপি ভেরিয়েবল স্কোপ

একটি ভেরিয়েবলের স্কোপ প্রোগ্রামে এর পরিসর হিসাবে সংজ্ঞায়িত করা হয় যার অধীনে এটি অ্যাক্সেস করা যেতে পারে। অন্য কথায়, “একটি ভেরিয়েবলের সুযোগ হল প্রোগ্রামের সেই অংশ যার মধ্যে এটি সংজ্ঞায়িত করা হয়েছে এবং অ্যাক্সেস করা যেতে পারে।”

পিএইচপি-তে তিন ধরনের ভেরিয়েবল স্কোপ রয়েছে:

  1. স্থানীয় পরিবর্তনশীল
  2. গ্লোবাল পরিবর্তনশীল
  3. স্ট্যাটিক পরিবর্তনশীল

স্থানীয় পরিবর্তনশীল

একটি ফাংশনের মধ্যে ঘোষিত ভেরিয়েবলগুলিকে সেই ফাংশনের জন্য স্থানীয় চলক বলা হয়। এই স্থানীয় ভেরিয়েবলগুলির সুযোগ রয়েছে শুধুমাত্র সেই নির্দিষ্ট ফাংশনে যেখানে তারা ঘোষণা করা হয়েছে। এর মানে হল যে এই ভেরিয়েবলগুলি ফাংশনের বাইরে অ্যাক্সেস করা যাবে না, কারণ তাদের স্থানীয় সুযোগ রয়েছে।

একই নামের ফাংশনের বাইরে একটি পরিবর্তনশীল ঘোষণা ফাংশনের ভিতরে ঘোষিত ভেরিয়েবল থেকে সম্পূর্ণ আলাদা। আসুন একটি উদাহরণের সাহায্যে স্থানীয় ভেরিয়েবলগুলি বুঝতে পারি:

  1. <?php  
  2.     function local_var()  
  3.     {  
  4.         $num = 45;  //local variable  
  5.         echo “Local variable declared inside the function is: “$num;  
  6.     }  
  7.     local_var();  
  8. ?>  

আউটপুট:

Local variable declared inside the function is: 45

File: local_variable2.php

 
  1. <?php  
  2.     function mytest()  
  3.     {  
  4.         $lang = “PHP”;  
  5.         echo “Web development language: “ .$lang;  
  6.     }  
  7.     mytest();  
  8.     //using $lang (local variable) outside the function will generate an error  
  9.     echo $lang;  
  10. ?>  

আউটপুট:

Web development language: PHP
Notice: Undefined variable: lang in D:\xampp\htdocs\program\p3.php

গ্লোবাল পরিবর্তনশীল

গ্লোবাল ভেরিয়েবল হল সেই ভেরিয়েবল যা ফাংশনের বাইরে ঘোষণা করা হয়। এই ভেরিয়েবলগুলি প্রোগ্রামের যে কোনও জায়গায় অ্যাক্সেস করা যেতে পারে। একটি ফাংশনের মধ্যে গ্লোবাল ভেরিয়েবল অ্যাক্সেস করতে, ভেরিয়েবলের আগে গ্লোবাল কীওয়ার্ড ব্যবহার করুন। যাইহোক, এই ভেরিয়েবলগুলি কোন কীওয়ার্ড ছাড়াই সরাসরি অ্যাক্সেস বা ফাংশনের বাইরে ব্যবহার করা যেতে পারে। তাই ফাংশনের বাইরে গ্লোবাল ভেরিয়েবল অ্যাক্সেস করতে কোনো কীওয়ার্ড ব্যবহার করার প্রয়োজন নেই।

 

আসুন একটি উদাহরণের সাহায্যে গ্লোবাল ভেরিয়েবলগুলি বুঝতে পারি:

উদাহরণ:

File: global_variable1.php

 
  1. <?php  
  2.     $name = “Sanaya Sharma”;        //Global Variable  
  3.     function global_var()  
  4.     {  
  5.         global $name;  
  6.         echo “Variable inside the function: “$name;  
  7.         echo “</br>”;  
  8.     }  
  9.     global_var();  
  10.     echo “Variable outside the function: “$name;  
  11. ?>  

আউটপুট:

Variable inside the function: Sanaya Sharma
Variable outside the function: Sanaya Sharma

দ্রষ্টব্য: গ্লোবাল কীওয়ার্ড ব্যবহার না করে, আপনি যদি ফাংশনের ভিতরে একটি গ্লোবাল ভেরিয়েবল অ্যাক্সেস করার চেষ্টা করেন তবে এটি একটি ত্রুটি তৈরি করবে যে ভেরিয়েবলটি অনির্ধারিত।

উদাহরণ:

File: global_variable2.php

 
  1. <?php  
  2.     $name = “Sanaya Sharma”;        //global variable  
  3.     function global_var()  
  4.     {  
  5.         echo “Variable inside the function: “$name;  
  6.         echo “</br>”;  
  7.     }  
  8.     global_var();  
  9. ?>  

আউটপুট:

 

নোটিশ: অনির্ধারিত পরিবর্তনশীল: নাম D:\xampp\htdocs\program\p3.php লাইন 6-এ

ফাংশনের ভিতরে পরিবর্তনশীল:

গ্লোবাল এর পরিবর্তে $GLOBALS ব্যবহার করা

ফাংশনের ভিতরে গ্লোবাল ভেরিয়েবল ব্যবহার করার আরেকটি উপায় হল পূর্বনির্ধারিত $GLOBALS অ্যারে।

উদাহরণ:

File: global_variable3.php

 
  1. <?php  
  2.     $num1 = 5;      //global variable  
  3.     $num2 = 13;     //global variable  
  4.     function global_var()  
  5.     {  
  6.             $sum = $GLOBALS[‘num1’] + $GLOBALS[‘num2’];  
  7.             echo “Sum of global variables is: “ .$sum;  
  8.     }  
  9.     global_var();  
  10. ?>  

আউটপুট:

Sum of global variables is: 18 

যদি দুটি ভেরিয়েবল, লোকাল এবং গ্লোবাল, একই নাম থাকে, তাহলে ফাংশনের ভিতরে গ্লোবাল ভেরিয়েবলের চেয়ে লোকাল ভেরিয়েবলের অগ্রাধিকার বেশি থাকে।

উদাহরণ:

File: global_variable2.php

 
  1. <?php  
  2.     $x = 5;  
  3.     function mytest()  
  4.     {  
  5.         $x = 7;  
  6.         echo “value of x: “ .$x;  
  7.     }  
  8.     mytest();  
  9. ?>  

আউটপুট:

Value of x: 7

দ্রষ্টব্য: স্থানীয় ভেরিয়েবলের গ্লোবাল ভেরিয়েবলের চেয়ে বেশি অগ্রাধিকার রয়েছে।

স্ট্যাটিক পরিবর্তনশীল

এটি PHP-এর একটি বৈশিষ্ট্য যা ভেরিয়েবলটি মুছে ফেলার জন্য, একবার এটি কার্যকর করা এবং মেমরি মুক্ত করা হয়। কখনও কখনও আমাদের ফাংশন এক্সিকিউশন শেষ হওয়ার পরেও একটি ভেরিয়েবল সংরক্ষণ করতে হয়। অতএব, পরিবর্তনশীল স্কোপিংয়ের আরেকটি গুরুত্বপূর্ণ বৈশিষ্ট্য হল স্ট্যাটিক পরিবর্তনশীল। আমরা একটি ভেরিয়েবলকে সংজ্ঞায়িত করতে ভেরিয়েবলের আগে স্ট্যাটিক কীওয়ার্ড ব্যবহার করি এবং এই ভেরিয়েবলটিকে স্ট্যাটিক ভেরিয়েবল বলা হয়।

 

স্ট্যাটিক ভেরিয়েবল শুধুমাত্র একটি স্থানীয় ফাংশনে বিদ্যমান, কিন্তু প্রোগ্রাম এক্সিকিউশনের সুযোগ ছেড়ে দেওয়ার পরে এটি তার মেমরিকে মুক্ত করে না। একটি উদাহরণের সাহায্যে এটি বুঝুন:উদাহরণ:

File: static_variable.php

 
  1. <?php  
  2.     function static_var()  
  3.     {  
  4.         static $num1 = 3;       //static variable  
  5.         $num2 = 6;          //Non-static variable  
  6.         //increment in non-static variable  
  7.         $num1++;  
  8.         //increment in static variable  
  9.         $num2++;  
  10.         echo “Static: “ .$num1 .“</br>”;  
  11.         echo “Non-static: “ .$num2 .“</br>”;  
  12.     }  
  13.       
  14. //first function call  
  15.     static_var();  
  16.   
  17.     //second function call  
  18.     static_var();  
  19. ?>  
আউটপুট:
Static: 4
Non-static: 7
Static: 5
Non-static: 7

আপনাকে লক্ষ্য করতে হবে যে প্রতিটি ফাংশন কলের পরে $num1 নিয়মিতভাবে বৃদ্ধি পায়, যেখানে $num2 হয় না। এই কারণেই $num1 একটি স্ট্যাটিক ভেরিয়েবল নয়, তাই এটি প্রতিটি ফাংশন কল চালানোর পরে এর মেমরি মুক্ত করে।



Leave a Comment

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

Scroll to Top