PHP Variable Scope কি?
PHP তে আপনি আপনার সমস্ত কোড জুড়ে যেকোনো জায়গায় Variable Declare বা ঘোষণা করতে পারেন। কোনো Variable যদি আপনি function এর ভিতরে ঘোষণা করেন, তাহলে ঐ Variable এর ব্যবহার Function এর মধ্যেই সীমাবদ্ধ রাখতে হবে। PHP তে এইটাকে বলা হয় Local Scope, আবার যদি কোনো Variable ফাঙ্কশনের বাহিরে ঘোষণা করেন। তাহলে ঐ Variable সমস্ত কোড জুড়ে ব্যবহার করতে পারবেন। তবে Funciton এর ভিতরে ব্যবহার করতে পারবেন না, যদি না সেই variable কে Global ঘোষণা না করেন।
PHP তে Variable Scope তিন ধরনের :
- local
- global
- static
Global এবং Local Scope
Global Scope
কোনো Variable কে যখন Function এর বাইরে ঘোষনা করা হয় তখন ঐ variable শুধু মাত্র Function এর বাহিরেই ব্যবহার করা যায়। function এর ভিতরে ব্যবহার করা যায়না। তখন এটাকে বলা হয় Global Scope, নিচের উদাহরণে দেখা যাক:
<?php
$x = 5; // global scope
function myFunc() {
echo "Variable x inside function is: $x <br>";
}
myFunc();
echo "Variable x outside function is: $x";
?>
ব্যাখ্যা : উপরের উদাহরণে function এর ভিতরের $x একটা Error Notice দেখাবে। কারন এখানে $x ভ্যারিয়েবল হচ্ছে Global Scope, যার জন্য $x কে function এর ভিতরে ব্যবহার করা যাবেনা। আবার function এর বাহিরে $x Variable কোনো Error দেখাবেনা। কারন Global Scope Variable আমরা function এর বাহিরে যেকোনো জায়গায় ব্যবহার করতে পারবো।
Local Scope
কোনো Variable কে যখন Function এর ভিতরে ঘোষনা করা হয় তখন ঐ variable শুধু মাত্র Function এর ভিতরেই ব্যবহার করা যায়। function এর বাহির থেকে ব্যবহার করা যায়না। তখন এটাকে বলা হয় লোকাল Scope, নিচের উদাহরণে দেখা যাক:
<?php
function myFun2() {
$x = 5; // local scope
echo "Variable x inside function is: $x<br>";
}
myFunc2();
// using x outside the function will generate an error
echo "Variable x outside function is: $x<br>";
?>
ব্যাখ্যা : উপরের উদাহরণে function এর বাহিরের $x একটা Error Notice দেখাবে। কারন এখানে Function এর ভিতরের $x Variable হচ্ছে Local Scope, যার জন্য $x কে function এর বাহিরে ব্যবহার করা যাবেনা। আর $x Variable টি Local Scope হওয়াতে function এর ভিতরে কোনো Error দেখাবেনা।
PHP তে Global Keyword কি?
PHP তে কোনো Global Variable কে function এর ভিতরে ব্যবহার করার জন্য global keyword ব্যবহার করা হয়। এটা করার জন্য function এর ভিতরে variable এর সামনে Global Keword লিখতে হবে। নিচের উদাহরণে দেখা যাক:
<?php
$x = 5;
$y = 10;
function myFunc3() {
global $x, $y;
$y = $x + $y;
}
myFunc3();
echo $y; // outputs 15
?>
ব্যাখ্যা : উপরের উদাহরণে function এর বাহিরের $x এবং $y Variable কে Function এর ভিতরে ব্যবহারের সুযোগের জন্য আমরা Global Keyword করি।
PHP তে Global Variable গুলো একটা array তে থাকার কারণে আমরা নিচের উদাহরণের মতো করেও Global Variable গুলোকে $GLOBALS super Global Variable দিয়ে ব্যবহার করতে পারি।
<?php
$x = 5;
$y = 10;
function myFunc3() {
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}
myFunc3();
echo $y; // outputs 15
?>
PHP তে Static Keyword কি?
সাধারণত PHP তে কোনো Function execute হওয়ার পর বা Function এর কাজ শেষ হওয়ার সাথে সাথে তার Local Variable গুলোও মুছে যায়। কিন্তু কখনো কখনো আমরা চাই পরবর্তীতে ব্যবহারের জন্য আমাদের Local Variable গুলো থাকুক। আর এই কাজটি করার জন্য আমাদের কে static keyword ব্যবহার করতে হয়। চলুন static keyword ছাড়া একটা উদাহরণ দেখি:
<?php
function myFunc4() {
$x = 0;
echo $x;
$x++;
}
myFunc4(); //Output: 0
myFunc4(); //Output: 0
myFunc4(); //Output: 0
?>
উপরের উদাহরণে লক্ষ্য করুন “myFunc4” function টি যতবারই call করতেছি ততবারই ফলাফল হিসাবে 1 আসতেছে। এর কারণ myFunc4 function টি প্রত্যেকবারই তার variable গুলো ডিলিট করে দেয় এবং প্রত্যেকবারই নতুন value assign করে। যার জন্য ফলাফল হিসাবে আমরা প্রত্যেকবার 1 পাচ্ছি। অথচ আমরা যদি চাই আগের মানের সাথে প্রত্যেকবার 1 করে যোগ হোক, তাহলে আপনি $x variable এর সামনে static keyword জুড়ে দিতে হবে। চলুন নিচের উদাহরণে দেখা যাক।
<?php
function myFunc4() {
static $x = 0;
echo $x;
$x++;
}
myFunc4(); //Output: 1
myFunc4(); //Output: 2
myFunc4(); //Output: 3
?>