পরিচয়
প্রোগ্রামিং-এ, স্কোপ বলতে বোঝায় যে কোন পরিবর্তনশীলটি অ্যাক্সেসযোগ্য। সাধারণত, একটি সাধারণ পিএইচপি স্ক্রিপ্টের (কোনও গঠন যেমন লুপ, ফাংশন ইত্যাদি ছাড়াই) একটি একক সুযোগ থাকে, অর্থে, সংজ্ঞার দিক থেকে প্রোগ্রাম জুড়ে একটি ভেরিয়েবল উপলব্ধ থাকে৷
একটি প্রধান স্ক্রিপ্টে পরিবর্তনশীলকে অন্তর্ভুক্ত করা বা প্রয়োজনীয় বিবৃতি সহ অন্তর্ভুক্ত অন্য কোনো স্ক্রিপ্টের জন্য উপলব্ধ করা হয়। নিম্নলিখিত উদাহরণে, একটি test.php স্ক্রিপ্ট প্রধান স্ক্রিপ্টে অন্তর্ভুক্ত করা হয়েছে।
এটি মূল স্ক্রিপ্ট
$var=100; include "test.php"; ?>অন্তর্ভুক্ত করুন
অন্তর্ভুক্ত ফাইল test.script নিম্নরূপ -
echo "value of of \$var in testscript.php : " . $var; ?>
যখন প্রধান স্ক্রিপ্ট কার্যকর করা হয়, নিম্নলিখিত ফলাফল প্রদর্শিত হয়
value of of $var in testscript.php : 100
যাইহোক, যখন স্ক্রিপ্টে একটি ব্যবহারকারীর সংজ্ঞায়িত ফাংশন থাকে, তখন ভিতরের যেকোনো ভেরিয়েবলের একটি স্থানীয় সুযোগ থাকে। ফলস্বরূপ, একটি ফাংশনের ভিতরে সংজ্ঞায়িত পরিবর্তনশীলটি বাইরে অ্যাক্সেস করা যাবে না। ফাংশনের বাইরে (উপরে) সংজ্ঞায়িত ভেরিয়েবলের একটি বিশ্বব্যাপী সুযোগ রয়েছে।
উদাহরণ
<?php $var=100; //global variable function myfunction(){ $var1="Hello"; //local variable echo "var=$var var1=$var1" . "\n"; } myfunction(); echo "var=$var var1=$var1" . "\n"; ?>
আউটপুট
এটি নিম্নলিখিত ফলাফল তৈরি করবে -
var= var1=Hello var=100 var1= PHP Notice: Undefined variable: var in line 5 PHP Notice: Undefined variable: var1 in line 8
লক্ষ্য করুন যে গ্লোবাল ভেরিয়েবল স্বয়ংক্রিয়ভাবে ফাংশনের স্থানীয় সুযোগের মধ্যে উপলব্ধ নয়। এছাড়াও, ভেরিয়েবল ভিতরের ফাংশন বাইরে অ্যাক্সেসযোগ্য নয়
গ্লোবাল কীওয়ার্ড
স্থানীয় স্কোপের মধ্যে গ্লোবাল ভেরিয়েবলে অ্যাক্সেস গ্লোবাল কীওয়ার্ড ব্যবহার করে স্পষ্টভাবে সক্ষম করা উচিত। পিএইচপি স্ক্রিপ্টটি নিম্নরূপ -
উদাহরণ
<?php $a=10; $b=20; echo "before function call a = $a b = $b" . "\n"; function myfunction(){ global $a, $b; $c=($a+$b)/2; echo "inside function a = $a b = $b c = $c" . "\n"; $a=$a+10; } myfunction(); echo "after function a = $a b = $b c = $c"; ?>
আউটপুট
এটি নিম্নলিখিত ফলাফল তৈরি করবে -
before function call a = 10 b = 20 inside function a = 10 b = 20 c = 15 PHP Notice: Undefined variable: c in line 13 after function a = 20 b = 20 c =
গ্লোবাল ভেরিয়েবল এখন ফাংশনের ভিতরে প্রক্রিয়া করা যেতে পারে। তাছাড়া, গ্লোবাল ভেরিয়েবলের ভিতরের ফাংশনে করা পরিবর্তনগুলি গ্লোবাল নেমস্পেসে প্রতিফলিত হবে
$GLOBALS অ্যারে
PHP সমস্ত গ্লোবাল ভেরিয়েবলকে $GLOBALS নামক একটি সহযোগী অ্যারেতে সঞ্চয় করে। ভেরিয়েবলের নাম এবং মান কী-মান জোড়া
গঠন করেনিম্নলিখিত PHP স্ক্রিপ্টে, $GLOBALS অ্যারে গ্লোবাল ভেরিয়েবল অ্যাক্সেস করতে ব্যবহৃত হয় -
উদাহরণ
<?php $a=10; $b=20; echo "before function call a = $a b = $b" . "\n"; function myfunction(){ $c=($GLOBALS['a']+$GLOBALS['b'])/2; echo "c = $c" . "\n"; $GLOBALS['a']+=10; } myfunction(); echo "after function a = $a b = $b c = $c"; ?>
আউটপুট
before function call a = 10 b = 20 c = 15 PHP Notice: Undefined variable: c line 12 Notice: Undefined variable: c in line 12 after function a = 20 b = 20 c =
স্থির পরিবর্তনশীল
স্ট্যাটিক কীওয়ার্ড দিয়ে সংজ্ঞায়িত একটি ভেরিয়েবল ফাংশনের প্রতিটি কলে আরম্ভ করা হয় না। তাছাড়া, এটি আগের কলের মান ধরে রাখে
উদাহরণ
<?php function myfunction(){ static $x=0; echo "x = $x" . "\n"; $x++; } for ($i=1; $i<=3; $i++){ echo "call to function :$i : "; myfunction(); } ?>
আউটপুট
এটি নিম্নলিখিত ফলাফল তৈরি করবে
call to function :1 : x = 0 call to function :2 : x = 1 call to function :3 : x = 2