কনস্ট্যান্ট ভ্যারিয়েবলস অ্যান্ড ডেটা টাইপস : পি.এইচ.পি ডেটা টাইপস (PHP Data Types)
পিএইচপি (PHP)-তে ডেটা টাইপ বলতে বোঝায় একটি ভ্যারিয়েবল কী ধরণের তথ্য বা মান ধারণ করছে। পিএইচপি একটি Loosely
Typed ল্যাঙ্গুয়েজ, অর্থাৎ ভ্যারিয়েবল ডিক্লেয়ার করার সময় আপনাকে ডেটা টাইপ বলে দিতে হয় না; মান অনুযায়ী পিএইচপি নিজে থেকেই তা বুঝে নেয়।
চলুন পিএইচপি-র প্রধান ডেটা টাইপগুলো এবং কনস্ট্যান্ট সম্পর্কে বিস্তারিত জেনে নিই।
১. পিএইচপি ডেটা টাইপস (PHP
Data Types)
পিএইচপিতে সাধারণত ৮টি প্রধান ডেটা টাইপ রয়েছে, যেগুলোকে তিনটি ভাগে ভাগ করা যায়:
ক. স্কেলার টাইপ (Scalar
Types)
এগুলো শুধুমাত্র একটি মান ধারণ করতে পারে।
- String: টেক্সট বা অক্ষরের সমষ্টি। যেমন: "Hello
World".
- Integer: পূর্ণসংখ্যা (দশমিক ছাড়া)। যেমন: 5985.
- Float (Double): দশমিক যুক্ত সংখ্যা। যেমন: 10.35.
- Boolean: সত্য বা মিথ্যা। এটি কেবল true অথবা false হতে পারে।
খ. কম্পাউন্ড টাইপ
(Compound Types)
এগুলো একাধিক মান বা জটিল ডেটা ধারণ করতে পারে।
- Array: একটি ভ্যারিয়েবলে অনেকগুলো মান জমা রাখার উপায়।
- Object: অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিংয়ের ক্ষেত্রে ব্যবহৃত হয়।
গ. স্পেশাল টাইপ (Special
Types)
- NULL: যখন কোনো ভ্যারিয়েবলে কোনো মান থাকে না, তখন তাকে নাল বলা হয়।
- Resource: এটি কোনো এক্সটার্নাল রিসোর্স (যেমন: ডাটাবেস কানেকশন) রেফারেন্স হিসেবে কাজ করে।
২. কনস্ট্যান্ট (PHP
Constants)
কনস্ট্যান্ট হলো এমন এক ধরনের নাম বা আইডেন্টিফায়ার যার মান স্ক্রিপ্ট চলাকালীন পরিবর্তন করা যায় না।
- বৈশিষ্ট্য: কনস্ট্যান্টের নামের আগে কোনো ডলার সাইন ($) হয় না। এটি সাধারণত সব বড় হাতের অক্ষরে লেখা হয়।
- কীভাবে তৈরি করবেন: define() ফাংশন অথবা const কিওয়ার্ড ব্যবহার করে।
উদাহরণ:
PHP
<?php
// define ব্যবহার করে
define("SITE_NAME", "My
Learning Blog");
echo SITE_NAME;
// const ব্যবহার করে (PHP 5.3+)
const PI = 3.1416;
echo PI;
?>
৩. ভ্যারিয়েবল বনাম কনস্ট্যান্ট
|
বৈশিষ্ট্য |
ভ্যারিয়েবল ($variable) |
কনস্ট্যান্ট (CONSTANT) |
|
মান পরিবর্তন |
যেকোনো সময় পরিবর্তন করা যায়। |
একবার সেট করলে আর পরিবর্তন করা যায় না। |
|
ডিক্লেয়ারেশন |
$ চিহ্ন দিয়ে শুরু হয়। |
define() বা const দিয়ে শুরু হয়। |
|
স্কোপ |
গ্লোবাল বা লোকাল হতে পারে। |
এটি স্বয়ংক্রিয়ভাবে গ্লোবাল (পুরো স্ক্রিপ্টে কাজ করে)। |
টিপস: আপনার কোডে কোনো ভ্যারিয়েবলের ডেটা টাইপ চেক করতে চাইলে var_dump() ফাংশনটি ব্যবহার করতে পারেন। এটি আপনাকে ডেটার মান এবং টাইপ—উভয়ই দেখাবে।
পিএইচপি ডেটা টাইপ এবং কনস্ট্যান্টের বাস্তব প্রয়োগ বোঝার জন্য একটি ছোট "ইউজার প্রোফাইল কার্ড" প্রজেক্টের কোড নিচে দেওয়া হলো। এখানে আমরা প্রায় সব ধরণের ডেটা টাইপ ব্যবহার করেছি।
PHP
<?php
// ১. কনস্ট্যান্ট ডিক্লেয়ারেশন (যা পরিবর্তন হবে না)
define("PLATFORM_NAME",
"Learning PHP");
const VERSION = 1.0;
// ২. বিভিন্ন ডেটা টাইপ ব্যবহার করে ভ্যারিয়েবল
$userName = "Arif
Hasan"; // String
$userAge = 25; // Integer
$userRating = 4.5; // Float (Double)
$isPremiumUser = true; // Boolean
$favoriteColors = ["Red",
"Blue", "Green"]; // Array
$extraInfo = null; // NULL
// ৩. আউটপুট প্রদর্শন
echo "--- " .
PLATFORM_NAME . " (v" . VERSION . ") ---" . "\n";
echo "User Name: $userName
\n";
echo "Age: $userAge \n";
echo "Rating: $userRating
\n";
// ৪. কন্ডিশনাল লজিক (Boolean ব্যবহার)
if ($isPremiumUser) {
echo "Status: Premium Member \n";
} else {
echo "Status: Free Member \n";
}
// ৫. লুপ ব্যবহার করে অ্যারে প্রদর্শন
echo "Favorite Colors:
";
foreach ($favoriteColors as $color)
{
echo $color . " ";
}
// ৬. ডেটা টাইপ চেক করার জন্য var_dump()
echo "\n\n--- Technical
Details --- \n";
var_dump($userRating);
var_dump($favoriteColors);
?>
কোডটি যেভাবে কাজ করছে:
- define এবং const: এখানে প্ল্যাটফর্মের নাম এবং ভার্সন কনস্ট্যান্ট হিসেবে রাখা হয়েছে কারণ এগুলো সাধারণত পুরো স্ক্রিপ্টে একই থাকে।
- স্কেলার টাইপ: নাম
(String), বয়স (Integer), এবং রেটিং
(Float) সরাসরি মান প্রকাশ করছে।
- Boolean: $isPremiumUser ব্যবহার করে আমরা সিদ্ধান্ত নিচ্ছি ইউজার প্রিমিয়াম কি না।
- Array: প্রিয় রঙের তালিকায় একাধিক মান রাখা হয়েছে যা foreach লুপ দিয়ে প্রিন্ট করা হয়েছে।
- var_dump(): এটি অত্যন্ত শক্তিশালী একটি ফাংশন যা ডেটার মানের সাথে তার টাইপ (যেমন: float(4.5)) এবং দৈর্ঘ্যও বলে দেয়। এটি ডিবাগিংয়ের জন্য খুব কাজে লাগে।
ডেটা টাইপ মেমরি স্ট্রাকচার
পিএইচপি ইন্টারনালি কীভাবে এই ডেটাগুলোকে সাজায় তা নিচের ডায়াগ্রাম থেকে বুঝতে পারবেন:
একটি HTML Table ব্যবহার করলে ডেটাগুলো অনেক বেশি প্রফেশনাল এবং রিড্যাবল (সহজে পাঠযোগ্য) মনে হয়। বিশেষ করে যখন আপনি কোনো প্রজেক্টের ইউজার ড্যাশবোর্ড বা রিপোর্ট তৈরি করবেন, তখন এই পদ্ধতিটিই সবচেয়ে বেশি ব্যবহৃত হয়।
নিচে একটি কমপ্লিট কোড দেওয়া হলো যা পিএইচপি ডেটা টাইপগুলোকে একটি সুন্দর এইচটিএমএল টেবিলের মধ্যে সাজিয়ে দেখাবে:
PHP
<?php
// ১. কনস্ট্যান্ট এবং ডেটা ভ্যারিয়েবল
define("SYSTEM_NAME", "User
Management System");
$uName = "Dr. Abdul
Musref"; // String
$uAge = 41; // Integer
$uRating = 4.9; // Float
$isVerified = true; // Boolean
$skills = ["PHP", "HTML",
"Data Science"]; // Array
$lastLogin = null; // NULL
?>
<!DOCTYPE html>
<html lang="bn">
<head>
<meta charset="UTF-8">
<title><?php echo SYSTEM_NAME; ?></title>
<style>
table { width: 50%; border-collapse:
collapse; margin: 25px 0; font-family: Arial, sans-serif; }
th, td { border: 1px solid #dddddd;
text-align: left; padding: 12px; }
th { background-color: #f2f2f2; color:
#333; }
tr:nth-child(even) { background-color: #fafafa;
}
.status-true { color: green;
font-weight: bold; }
</style>
</head>
<body>
<h2><?php echo SYSTEM_NAME; ?>
- প্রোফাইল ভিউ</h2>
<table>
<tr>
<th>বিবরণ (Field)</th>
<th>মান (Value)</th>
<th>ডেটা টাইপ (Data Type)</th>
</tr>
<tr>
<td>নাম</td>
<td><?php echo $uName; ?></td>
<td>String</td>
</tr>
<tr>
<td>বয়স</td>
<td><?php echo $uAge; ?></td>
<td>Integer</td>
</tr>
<tr>
<td>রেটিং</td>
<td><?php echo $uRating; ?></td>
<td>Float/Double</td>
</tr>
<tr>
<td>ভেরিফাইড স্ট্যাটাস</td>
<td class="status-true"><?php
echo ($isVerified ? "Yes" : "No"); ?></td>
<td>Boolean</td>
</tr>
<tr>
<td>স্কিলস (অ্যারে)</td>
<td><?php echo implode(",
", $skills); ?></td>
<td>Array</td>
</tr>
<tr>
<td>শেষ লগইন</td>
<td><?php echo ($lastLogin
?? "Never"); ?></td>
<td>NULL</td>
</tr>
</table>
</body>
</html>
এই কোডে আমরা যা শিখলাম:
- ইমপ্লোড (implode): অ্যারের মানগুলোকে একটি স্ট্রিং হিসেবে দেখানোর জন্য আমরা implode() ফাংশন ব্যবহার করেছি। এটি ডেটা টাইপ হ্যান্ডলিংয়ে খুব কমন।
- টার্নারি অপারেটর
(Ternary Operator): বুলিয়ান (true/false) মানকে সরাসরি প্রিন্ট না করে
'Yes' বা 'No' হিসেবে দেখানোর জন্য ($isVerified
? "Yes" : "No") ব্যবহার করা হয়েছে।
- নাল কোলেসিং অপারেটর
(Null Coalescing): কোনো ভ্যারিয়েবল যদি NULL হয়, তবে তার বদলে একটি ডিফল্ট টেক্সট (যেমন:
"Never") দেখানোর জন্য ?? ব্যবহার করা হয়েছে।
0 Comments