কম্পিউটার টিউটোরিয়াল

PHP টাইপ জাগলিং (Type Juggling)


সংজ্ঞা এবং ব্যবহার

PHP একটি ডাইনামিক্যালি টাইপড (dynamically typed) ল্যাঙ্গুয়েজ। PHP-তে ভেরিয়েবলের এক্সপ্লিসিট টাইপ ডিক্লেয়ারেশন নয় চাওয়া হয় নেই সমর্থিত হয়। C, C++, Java-এর বিপরীতে, PHP ভেরিয়েবলের টাইপ নির্ভর করে এসাইন করা মানের ওপর, অন্যদিকে নয়। আরও, একটি ভেরিয়েবল যদি ভিন্ন টাইপের মান এসাইন করা হয়, তবে এর টাইপ ও পরিবর্তন হয়। ভেরিয়েবলের ডাইনামিক্যালি পরিবর্তনশীল মান হ্যান্ডেল করার PHP-এর এই পদ্ধতিকে টাইপ জাগলিং (Type Juggling) বলা হয়।

$var="Hello"; // ভেরিয়েবল স্ট্রিং টাইপ
$var=100; // একই ভেরিয়েবল এখন ইন্টিজার

এক্সপ্রেশন ক্যালকুলেশনের সময়ও টাইপ জাগলিং ঘটে। নিচের উদাহরণে, ডিজিটস ধারণকারী একটি স্ট্রিং ভেরিয়েবল যোগ অপারেশনের জন্য অটোমেটিক্যালি ইন্টিজারে কনভার্ট হয়—

উদাহরণ

<?php $var1=100; $var2="100"; $var3=$var1+$var2; var_dump($var3); ?>

আউটপুট

এটি নিচের ফলাফল দেবে—

int(200)

যদি কোনো স্ট্রিং ডিজিট দিয়ে শুরু হয়, তবে ট্রেলিং নন-নামেরিক ক্যারেক্টারগুলো ক্যালকুলেশনের সময় উপেক্ষা করা হয়। তবে PHP পার্সার একটি নোটিশ ইস্যু করে—

উদাহরণ

<?php $var1=100; $var2="100 days"; $var3=$var1+var2; var_dump($var3); ?>

আউটপুট

এটি নিচের ফলাফল দেবে—

PHP Notice: A non well formed numeric value encountered in ... int(200)

টাইপ কাস্টিং (Type casting) একটি ভেরিয়েবলকে নির্দিষ্ট টাইপে বাধ্য করে। নিচের স্ক্রিপ্টে বিভিন্ন টাইপ কাস্ট অপারেটরের উদাহরণ দেওয়া হয়েছে—

উদাহরণ

<?php $var1=100; $var2=(boolean)$var1; $var3=(string)$var1; $var4=(array)$var1; $var5=(object)$var1; var_dump($var2, $var3, $var4, $var5); ?>

আউটপুট

এটি নিচের ফলাফল দেবে—

bool(true) string(3) "100" array(1) {    [0]=>    int(100) } object(stdClass)#1 (1) {    ["scalar"]=>    int(100) }

ভেরিয়েবলকে স্ট্রিংে কাস্ট করা ডবল কোটেড স্ট্রিংয়ের মধ্যে রাখেও করা যায়—

উদাহরণ

<?php $var1=100.50; $var2=(string)$var1; $var3="$var1"; var_dump($var2, $var3); ?>

আউটপুট

এটি নিচের ফলাফল দেবে—

string(5) "100.5" string(5) "100.5"

  1. PHP বুলিয়ান ডেটা টাইপ (Boolean Data Type)

  2. PHP ট্যাগস (PHP Tags)

  3. PHP টাইপ অপারেটর (Type Operators)

  4. PHP pi() ফাংশন