PHP-তে আটটি ডেটা টাইপ আছে। আপনি এদের বেশিরভাগ ক্রমাগত ব্যবহার করবেন; দুটো (object, callable) এই অংশের পরে নিজেদের আলাদা পাঠ পাবে।
| টাইপ | কী ধরে রাখে | উদাহরণ |
|---|---|---|
| string | টেক্সট | "Hello" |
| int | পূর্ণ সংখ্যা | 42 |
| float | দশমিক সংখ্যা | 3.14 |
| bool | true বা false | true |
| array | মানের একটি ক্রমানুসারে সাজানো সংগ্রহ | [1, 2, 3] |
| object | একটি ক্লাসের একটি instance | new Person() |
| null | একেবারেই কোনো মান নেই | null |
| callable | একটি ফাংশনের রেফারেন্স | strtoupper(...) |
gettype() আপনাকে বলে দেয় একটি ভ্যারিয়েবলে বর্তমানে কী টাইপ আছে — শেখার সময় দরকারি, আর মাঝেমধ্যে আসল ডিবাগিংয়েও:
<?php
$x = 42;
echo gettype($x); // "integer"
?>কোনো অপারেশনের প্রয়োজন হলে PHP স্বয়ংক্রিয়ভাবে টাইপের মধ্যে রূপান্তর করে দেয় — একে বলে টাইপ জাগলিং। একটি সংখ্যার মতো দেখতে একটি স্ট্রিং একটি প্রকৃত সংখ্যার সাথে যোগ করুন, PHP আপনার জন্য স্ট্রিংটি রূপান্তর করে দেবে:
<?php
$result = "5" + 3; // 8 (the string "5" is converted to an int)
echo $result;
?>এটি সুবিধাজনক, কিন্তু খেয়াল না রাখলে চমকপ্রদ ফলাফলও দিতে পারে — "5 apples" + 3 আধুনিক PHP-তে চুপচাপ অনুমান করার বদলে একটি warning দেয়। পরের পাঠ, Type Casting, দেখাবে কীভাবে PHP-এর স্বয়ংক্রিয় নিয়মের উপর ছেড়ে না দিয়ে ইচ্ছাকৃতভাবে টাইপের মধ্যে রূপান্তর করা যায়।
null নিজেই একটি আলাদা জিনিস
null একটি খালি স্ট্রিং ""-এর মতো নয়, আর এটি 0 বা false-এরও মতো নয় — যদিও নির্দিষ্ট কিছু তুলনায় PHP এদের সবাইকে "falsy" হিসেবে গণ্য করবে। null নির্দিষ্টভাবে মানে কখনো কোনো মান সেট করাই হয়নি। এই পার্থক্যটা আরও গুরুত্বপূর্ণ হয়ে ওঠে যখন আপনি ডেটাবেস নিয়ে কাজ শুরু করবেন, যেখানে একটি অনুপস্থিত মান আর একটি খালি মান সত্যিকারভাবেই ভিন্ন জিনিস বোঝায়।