পিএইচপি ভ্যারিয়েবল
ভ্যারিয়েবল হলো তথ্য জমা রাখার পাত্র(container)।
আপনি যদি পিএইচপিতে তথ্য নিয়ে কাজ করতে চান তাহলে তথ্য/তথ্যসমূহকে অবশ্যই প্রথমে ভ্যারিয়েবলের মধ্যে জমা রাখতে হবে।
পিএইচপি ভ্যারিয়েবল ঘোষণা/তৈরি করা
পিএইচপিতে ভ্যারিয়েবল লেখার জন্য প্রথমে $ চিহ্ন এবং এর সাথেই ডান পাশে ভ্যারিয়েবল এর নাম লিখতে হয়।
<!DOCTYPE html>
<html>
<head>
<title>পিএইচপি উদাহরণ</title>
</head>
<body>
<?php
// পিএইচপি ভ্যারিয়েবল ডিক্লেয়ারেশন এবং ইনিশিয়ালাইজেশন
$academyName = "স্যাট একাডেমী";
$postCode = ৬২১১;
// echo ফাংশন এর মাধ্যমে ব্রাউজারে আউটপুট নেওয়া হয়।
echo $academyName."<br>";
echo $postCode;
?>
</body>
</html>
স্যাট একাডেমী
৬২১১
উপররের উদাহরণটি সম্পাদিত হওয়ার পরে $academyName এবং $postCode ভ্যারিয়েবল এর মধ্যে যথাক্রমে স্যাট একাডেমী এবং ৬২১১ জমা হয়।
- পরামর্শঃ ভ্যারিয়েবল এর মধ্যে টেক্সট ভ্যালু জমা রাখার জন্য কোটেশন মার্ক(" ") ব্যবহার করুন।
- বিঃদ্রঃ অন্যান্য প্রোগ্রামিং ল্যাঙ্গুয়েজ যেমন- সি, সি++, জাভা ইত্যাদির ন্যায় পিএইচপিতে ভ্যারিয়েবল ঘোষণা করার জন্য অতিরিক্ত কোনো কমান্ড ব্যবহার করতে হয় না। পিএইচপি ভ্যারিয়েবলে যখনই কোনো ভ্যালু এসাইন করে দেন তখনি এটি তৈরি হয়ে যায়।
শুধুমাত্র এটুকু বুঝলেই হবে যে, ভ্যারিয়েবল হলো তথ্য জমা রাখার পাত্র।
পিএইচপি ভ্যারিয়েবল
ভ্যারিয়েবলের নাম সংক্ষিপ্ত(যেমন- x এবং y) অথবা বর্ননামূলক(যেমন- age, color, first_name ইত্যাদি) হতে পারে।
পিএইচপি ভ্যারিয়েবল ডিক্লেয়ারেশন এর নিয়মঃ
- ভ্যারিয়েবল শুরু হয় $ চিহ্নের মাধ্যমে এবং ঠিক এর পরেই ভ্যারিয়েবলের নাম থাকে।
- ভ্যারিয়েবলের নাম অবশ্যই বর্ণ অথবা আন্ডারস্কোর দিয়ে শুরু হতে হবে।
- ভ্যারিয়েবল নাম কখনোই সংখ্যা দিয়ে শুরু হবে না।
- ভ্যারিয়েবল নামে শুধুমাত্র বর্ণ, অংক এবং আন্ডারস্কোর থাকতে পারবে (যেমনঃ A-z, 0-9, এবং _ )
- ভ্যারিয়েবল নাম হচ্ছে কেস সেনসিটিভ। যেমন- $satt এবং $SATT সম্পূর্ন ভিন্ন দুটি ভ্যারিয়েবল।
সবসময়ই মাথায় রাখবেন যে, পিএইচপি ভ্যারিয়েবল হচ্ছে কেস সেনসিটিভ!
ভ্যারিয়েবলের আউটপুট
ব্রাউজার/কনসোলে পিএইচপি ভ্যারিয়েবলের আউটপুট নেওয়ার জন্য প্রায়ই echo স্টেটমেন্ট ব্যবহার করা হয়।
ভ্যারিয়েবলের আউটপুট কিভাবে নিতে হয় নিচের উদাহরণে দেখানো হলোঃ
<!DOCTYPE html>
<html>
<head>
<title>পিএইচপি উদাহরণ</title>
</head>
<body>
<?php
$academyName = "স্যাট একাডেমী";
echo $academyName . " বাংলাদেশের মধ্যে অন্যতম আইটি প্রতিষ্ঠান।";
?>
</body>
</html>
স্যাট একাডেমী বাংলাদেশের মধ্যে অন্যতম আইটি প্রতিষ্ঠান।
নিচের উদাহরণের মাধ্যমে ২টি ভ্যারিয়েবলের যোগফল নির্ণয় করে দেখানো হলোঃ
<!DOCTYPE html>
<html>
<head>
<title>পিএইচপি উদাহরণ</title>
</head>
<body>
<?php
$nine = 9;
$five = 5;
echo $nine + $five;
?>
</body>
</html>
14
বিঃদ্রঃ echo স্টেটমেন্ট সম্মন্ধে পরবর্তী অধ্যায়ে আরও আলোচনা করা হয়েছে।
পিএইচপিতে ডেটা টাইপ অনেকটাই সিথিল(Loose)
উপরের উদাহরণ সমূহে লক্ষ্য করলে দেখবেন যে, সেখানে ভ্যারিয়েবলের কোনো ডেটা টাইপ নাই।
ভ্যালুর উপর ভিত্তিকরে পিএইচপি ভ্যারিয়েবল স্বয়ংক্রিয়ভাবেই সঠিক ডেটা টাইপে রূপান্তরিত(convert) হয়।
কিন্তু অন্যান্য প্রোগ্রামিং ল্যাঙ্গুয়েজ যেমন- সি, সি++, জাভা ইত্যাদির ক্ষেত্রে ভ্যারিয়েবলের নামের পূর্বে অবশ্যই ডেটা টাইপ নির্ধারণ করে দিতে হয়।
পিএইচপি ভ্যারিয়েবল স্কোপ
পিএইচপিতে স্ক্রিপ্টের যেকোনো জায়গায় ভ্যারিয়েবল ঘোষণা(Declare) করা যায়।
ভ্যারিয়েবলের স্কোপ হলো স্ক্রিপ্টের অংশ, যেখানে ভ্যারিয়েবল কে রেফার করা হয়ঃ
- local- ফাংশনের ভেতরের ভ্যারিয়েবল।
- global- ফাংশনের বাহিরের ভ্যারিয়েবল।
- static-ফাংশনের কাজ শেষেও ভ্যারিয়েবল মুছে যায় না।
Local এবং Global স্কোপ
ফাংশনের ভেতরে ভ্যারিয়েবল ঘোষণা করলে তাদের স্কোপ LOCAL থাকে এবং এটি শুধুমাত্র ফাংশনের ভেতর থেকেই এক্সেস এবং ব্যবহার করা যায়ঃ
<!DOCTYPE html>
<html>
<head>
<title>পিএইচপি উদাহরণ</title>
</head>
<body>
<?php
function localScope() {
$name = "আজিজুর রহমান"; // local স্কোপ
echo "<p>ফাংশনের মধ্যে ভ্যারিয়েবল name এর ভ্যালু অ্যাক্সেসঃ $name</p>";
}
localScope();
// ফাংশনের বাহির থেকে ভ্যারিয়েবল name এক্সেস করলে একটি error পাওয়া যাবে।
echo "<p>ফাংশনের বাহিরে ভ্যারিয়েবল name এর ভ্যালু অ্যাক্সেসঃ $name</p>";
?>
</body>
</html>
ফাংশনের মধ্যে ভ্যারিয়েবল name এর ভ্যালু অ্যাক্সেসঃ আজিজুর রহমান
( ! ) Notice: Undefined variable: name
ফাংশনের বাহির থেকে ভ্যারিয়েবল name এর ভ্যালু অ্যাক্সেসঃ
ফাংশনের বাহিরে ভ্যারিয়েবল ঘোষণা করলে তাদের স্কোপ GLOBAL থাকে এবং এটি শুধুমাত্র ফাংশনের বাহির থেকেই এক্সেস এবং ব্যবহার করা যায়ঃ
<!DOCTYPE html>
<html>
<head>
<title>পিএইচপি উদাহরণ</title>
</head>
<body>
<?php
$name = "আজিজুর রহমান"; // global স্কোপ
function localScope() {
// এই ফাংশনের মধ্যে ভ্যারিয়েবল name ব্যবহার করলে একটি error পাওয়া যাবে
echo "<p>ফাংশনের মধ্য থেকে ভ্যারিয়েবল name এর ভ্যালু অ্যাক্সেসঃ $name</p>";
}
localScope();
echo "<p>ফাংশনের বাহিরে ভ্যারিয়েবল name এর ভ্যালু অ্যাক্সেসঃ $name</p>";
?>
</body>
</html>
( ! ) Notice: Undefined variable: name
ফাংশনের মধ্য থেকে ভ্যারিয়েবল name এর ভ্যালু অ্যাক্সেসঃ
ফাংশনের বাহিরে ভ্যারিয়েবল name এর ভ্যালু অ্যাক্সেসঃ আজিজুর রহমান
আপনি ইচ্ছা করলে একই ভ্যারিয়েবলের নাম ভিন্ন ভিন্ন ফাংশনে ব্যবহার করতে পারবেন। কারণ, ফাংশনের মধ্যে ঘোষিত ভ্যারিয়েবলের স্কোপ লোকাল হওয়ায় শুধুমাত্র সংশ্লিষ্ট ফাংশনই ঐ ভ্যারিয়েবল কে মনে রাখে।
অর্থাৎ ফাংশন এক্সিকিউশন হলেই এদের লাইফ টাইম শেষ হয়ে যায়।
পিএইচপি global কিওয়ার্ড
গ্লোবাল ভ্যারিয়েবলকে ফাংশনের মধ্য থেকে এক্সেস করতে হলে global কিওয়ার্ড ব্যবহার করতে হয়।
এটি করার জন্য নিচের উদাহরণের মত ফাংশনের মধ্যে ভ্যারিয়েবলের নামের পূর্বে global কিওয়ার্ড ব্যবহার করুনঃ
<!DOCTYPE html>
<html>
<head>
<title>পিএইচপি উদাহরণ</title>
</head>
<body>
<?php
$firstPart = "আজিজুর ";
$total = "রহমান";
function globalScope() {
global $firstPart, $total;
$total = $firstPart . $total;
}
globalScope();
echo $total; // ভ্যারিয়েবল $total এর নতুন ভ্যালু আউটপুট দিবে
?>
</body>
</html>
আজিজুর রহমান
পিএইচপি সকল গ্লোবাল ভ্যারিয়েবলকে $GLOBALS[index] নামের একটি এসোসিয়েটিভ অ্যারে এর মধ্যে জমা রাখে। এখানে index হচ্ছে ভ্যারিয়েবলের নাম। এছাড়া এই অ্যারেকে ফাংশনের মধ্য থেকে এক্সেস করা যায় এবং এটি ব্যবহার করে গ্লোবাল ভ্যারিয়েবলকে সরাসরি আপডেটও করা যায়।
উপরের উদাহরণটি নিচের মত করেও লিখা যায়।
<!DOCTYPE html>
<html>
<head>
<title>পিএইচপি উদাহরণ</title>
</head>
<body>
<?php
$firstPart = "আজিজুর ";
$total = "রহমান";
function globalScope() {
$GLOBALS['total'] = $GLOBALS['firstPart'] . $GLOBALS['total'];
}
globalScope();
echo $total; // ভ্যারিয়েবল $total এর নতুন ভ্যালু আউটপুট দিবে
?>
</body>
</html>
আজিজুর রহমান
পিএইচপি static কিওয়ার্ড
সাধারণত কোনো ফাংশন সম্পন্ন হওয়ার সাথে সাথেই ফাংশনের মধ্যে ব্যবহৃত সমস্ত ভ্যারিয়েবল মুছে যায়।
আপনি যদি এমনটা চান যে, ফাংশন সম্পন্ন হওয়ার পরেও ভ্যারিয়েবল মুছে যাবে না, এক্ষেত্রে ভ্যারিয়েবল ঘোষণা করার সময় ভ্যারিয়েবলের নামের পূর্বে static কিওয়ার্ড ব্যবহার করুনঃ
<!DOCTYPE html>
<html>
<head>
<title>পিএইচপি উদাহরণ</title>
</head>
<body>
<?php
function useStatic() {
static $number = 9;
echo $number;
$number--;
}
useStatic();
echo "<br>";
useStatic();
echo "<br>";
useStatic();
?>
</body>
</html>
9
8
7
এখন ফাংশনকে যতবার কল করবেন, ভ্যারিয়েবলের ভ্যালুও ততবার পরিবর্তন হবে এবং শেষ বার কল করলে যে ভ্যালু পাওয়া যাবে সেটাই হবে ভ্যারিয়েবলের ভ্যালু।
নোটঃ উপরের উদাহরণে ব্যবহৃত ভ্যারিয়েবল $number এর স্কোপ ফাংশনের মধ্যে এখনো লোকাল।