Data Types


আমাদের দৈনন্দিন জীবনে বিভিন্ন ধরনের ডেটা বা তথ্য উপাও ব্যবহার করে থাকি । যেমনঃ

আজ সকালে ভার্সিটিতে গিয়ে রাহিমার কাছে মিথ্যা কথা বলে ২০০০ টাকা ধার করলাম।

এই বাক্যটিতে কয়েক ধরনের ডেটা আছে ,

  • ২০০০
  • মিথ্যা
  • স্টিং

প্রত্যেক প্রোগ্রামিং ভাষাতেই বিভিন্ন ধরনের ডেটা তথা বিভিন্ন ধরনের ডেটা টাইপ আছে । পিএসপিতেও এরকম ডেটা টাইপ আছ।

কোনটা টেক্সট, কোনটা সংখ্যা, সংখ্যার ভিতরে আবার কোনটা পূর্ণ সংখ্যা, কোনটা ভগ্নাংশ - এই সব ডাটার একেকটা একেক রকম। এখান থেকেই মূলত ডাটা টাইপ কনসেপ্ট এর উৎপত্তি।

পিএইচপিতে আমরা কোন ভ্যারিয়েবল এর টাইপ জানতে gettype() ফাংশনটি ব্যবহার করতে পারি । যেমন:

<?php
$age = 23; 
echo gettype($age); // integer

পিএইচপি তে বহুল ব্যবহৃত ডাটা টাইপ গুলো হলো:

  • String
  • Integer
  • Float (floating point numbers - also called double)
  • Boolean
  • Array
  • Object
  • NULL
  • Resource

String

স্ট্রিংস হলো অনেকগুলো ক্যারেক্টারের সমষ্টি । পিএইচপিতে এখনো ইউনিকোড এর সাপোর্ট আসে নি । স্ট্রিং ভ্যারিয়েবল তৈরি করতে হলে সাধারনত ডাবল কিংবা সিঙ্গল কোট ব্যবহার করা হয় ।

<?php
$name = "King Rayhan";
$versity = 'North South University';

Integer

ইন্টিজার ব্যবহার করি আমরা পূর্ণ সংখ্যা প্রকাশ করার জন্য । এই পূর্ণ সংখ্যা ধনাত্বক বা ঋণাত্বক হতে পারে । যেমন: কারো বয়স,

<?php

$age = 75;

লক্ষ্যনীয় যে ইন্টিজার ডেসিম্যাল, অক্টাল, হেক্সাডেসিম্যাল কিংবা বাইনারি ফরমাটেও প্রকাশ করা যায়:

<?php
$a = 1234; // ডেসিম্যাল
$a = -123; // ঋণাত্বক
$a = 0123; // অক্টাল, ডেসিম্যালে কনভার্ট করলে পাবো ৮৩
$a = 0x1A; // হেক্সাডেসিম্যাল, ডেসিম্যালে মান হবে ২৬ 
$a = 0b11111111; // বাইনারী, ডেসিম্যালে মান হবে ২৫৫

(উদাহরণটি পিএইচপি ম্যানুয়াল থেকে নেওয়া, কমেন্ট বাংলায় অনুবাদ করা)

ফ্লোটিং পয়েন্ট বা ডাবল

ভগ্নাংশ কিংবা দশমিক সংখ্যা প্রকাশ করার জন্য আমরা ফ্লোটিং পয়েন্ট টাইপ ব্যবহার করি । এটাকে ডাবল কিংবা রিয়াল নাম্বার ও বলা হয় ।

<?php
$temperature = 30.45;

Boolean

বুলিয়ান টাইপ ব্যবহার করে আমরা কোন কিছু সত্য না মিথ্যা তা প্রকাশ করে থাকি । আরেকটু গভীরভাবে চিন্তা করলে আমরা দেখবো যখন কোন ভ্যারিয়েবল ঠিক বিপরীতধর্মী দুইটা ভ্যালুর যে কোন একটা গ্রহন করে তখন আমরা সেটাকে সচারচর বুলিয়ান টাইপ দিয়ে প্রকাশ করি । +

পিএইচপিতে বুলিয়ান টাইপের ভ্যালু হতে পারে TRUE অথবা FALSE

<?php

$isMarried = FALSE; 
$isAlive = TRUE;

Array

এ্যারে হলো একটি তালিকা । যেখানে একটি ইনডেক্স এর বিপরীতে আমরা একটি ভ্যালু সংরক্ষণ করি । এ্যারে তৈরি করার জন্য আমরা বিল্ট ইন array কন্সট্র্যাক্ট ব্যবহার করি । ইনডেক্স এর বিপরীতে ভ্যালু ডিফাইন করার জন্য আমরা => সিম্বল ব্যবহার করি ।

<?php
$array = array(
    "foo" => "bar",
    "bar" => "foo",
);

এখানে $array একটি এ্যারে যার foo ইনডেক্স বা কি এর ভ্যালু bar এবং bar এর ভ্যালু foo । উদাহরণটি পিএইচপি ম্যানুয়াল থেকে নেওয়া ।

লক্ষ্যনীয় বিষয়: এ্যারে এর ইনডেক্স বা কি এর ভ্যালু শুধুমাত্র স্ট্রিং বা ইন্টিজার হবে । তবে ভ্যালু যে কোন টাইপের হতে পারে । আমরা চাইলে, ইনডেক্স এর ভ্যালু স্কিপ করতে পারতাম । সেক্ষেত্রে পিএইচপি নিজে থেকেই ইনডেক্স এর ভ্যালু হিসেবে ক্রমিক সংখ্যা ব্যবহার করতো ।

<?php
$list = array('a', 'c', 3, 'wow', 5);

এখানে এই এ্যারের ইনডেক্সগুলো হবে - 0, 1, 2, 3, 4 - মনে রাখতে হবে, এই ইনডেক্স হলো জিরো বেইড, অর্থাৎ ইনডেক্স গননা শুরু হয় জিরো থেকে । প্রথম আইটেমের ইনডেক্স তাই জিরো হয়, যে কোন আইটেমের ইনডেক্স হয় তার নিউমেরিক্যাল পজিশন থেকে এক কম। পিএইচপি 5.4 থেকে এ্যারে ডিফাইন করার জন্য শর্টহ্যান্ড ব্যবহার করা যায়:

<?php
 $array = [
    "foo" => "bar",
    "bar" => "foo",
];
$list = ['a', 'z', 2, 10];

এখানে আমরা array এর পরিবর্তে [ এবং ] এর মধ্যে কি-ভ্যালু ডিফাইন করি । পিএইচপির এ্যারে ডাটা টাইপটি একই সাথে এ্যারে, লিস্ট, ডিকশনারী, স্ট্যাক, কিউ, কালেকশান প্রভৃতির কাজ করতে পারে । এ্যারে নিয়ে পরবর্তিতে বিস্তারিত আলোচনা করা হবে।

অবজেক্ট টাইপ

পিএইচপি ক্লাস থেকে new কিওয়ার্ড ব্যবহার করে অবজেক্ট ইন্সট্যান্স তৈরি করা যায় । অবজেক্ট সম্পর্কে আরো বিস্তারিত আমরা অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং চ্যাপ্টারে দেখবো । নাল টাইপ

যখন কোন ভ্যারিয়েবলের কোন ভ্যালু থাকে না তখন সেটা নাল টাইপ এর হয় । এই টাইপের একমাত্র গ্রহনযোগ্য ভ্যালু হলো - null - যার মানে ঐ ভ্যারিয়েবল এর কোন ভ্যালু নেই ।

টাইপ কনভার্শন

অটোমেটিক কনভার্শন

পিএইচপিতে আমরা ভ্যারিয়েবল ডিক্লেয়ার করার সময় এর টাইপ নির্ধারণ করে দিতে পারি না । ভ্যারিয়েবল এর ভ্যালুর উপর নির্ভর করে পিএইচপি নিজে থেকেই ডাটা টাইপ নির্বাচন করে নেয় । যেমন $var এর ভ্যালু হিসেবে যদি আমরা hello world পাস করি, তাহলে $var হবে স্ট্রিং, পরবর্তীতে যদি $var এর ভ্যালু হিসেবে 23 হয় তবে সেটি হবে ইন্টিজার । পিএইচপি কনটেক্সট অনুযায়ী ভ্যারিয়েবল এর টাইপ স্বয়ংক্রিয়ভাবে পরিবর্তন করে নেয় । যেমন, আমরা যখন যোগ করি তখন যদি উভয় পাশই ডাবল ভ্যালু হয় তখন রেজাল্ট ও হবে ডাবল । কিন্তু যে কোন একটি যদি ডাবল না হয় তাহলে রেজাল্ট হবে ইন্টিজার । এসব ক্ষেত্রে মূল ভ্যারিয়েবল এর টাইপ পরিবর্তন হয় না কিন্তু ফলাফলের পরিবর্তন হয় । পিএইচপির এই অটোমেটিক টাইপ কনভার্শন এর ব্যাপারে খেয়াল রাখা জরুরী । নাহলে অনাকাঙ্ক্ষিত ফলাফল পাওয়া অসম্ভব কিছুই না ।

ম্যানুয়াল টাইপ কনভার্শন

ম্যানুয়ালি টাইপ কনভার্ট করতে আমরা settype() ফাংশনটি ব্যবহার করি । এটি ঐ ভ্যারিয়েবল এর টাইপ এবং ভ্যালু দুটোই পরিবর্তন করতে পারে ।

<?php
$age = 23;
$name = "masnun";

settype($age, "string");
settype($name, "integer");

var_dump($age); 
var_dump($name);

results matching ""

    No results matching ""