পিএইচপি প্রোগ্রামিং

পিএইচপি তে Single Quote ও Double Quote এর পার্থক্য

July 23, 2020

আমরা জানি পিএইচপি তে কোন স্ট্রিং লেখার সময় সিঙ্গেল কোট ( ‘ ) এবং ডাবল কোট ( ” ) উভয় দিয়ে Enclose(মোড়ানে 😀 ) করা যায়। উদাহরন:

<?php
   echo 'Hello world'; //output: Hello world
   echo "Hello world"; //output: Hello world

দুটোই সেইম আউটপুট দিচ্ছে, তাহলে পার্থক্য টা কোথায়? পার্থক্য অবশ্যই আছে এবং এটি খুবই কাজের।
ধরুন আপনার একটি ভ্যারিয়েবল যার নাম $name এবং এই ভ্যারিয়েবলে একটি ভ্যালু ও আছে $name = 'Sagor'; , এবার আপনি চাইছেন আপনার আউটপুট হবে Hello, This is Sagor. [Sagor লেখাটি $name ভ্যারিয়েবল থেকে নিবেন]; তাহলে কি করতে হবে? এখানে ‘Hello, This is’ লেখাটি যেহেতু স্ট্যাটিক সেইক্ষেত্রে আমাদেরকে অবশ্যই আগে সেটি সিঙ্গেল বা ডাবল কোটের ভিতরে লিখতে হবে এবং তারপর $name ভ্যারিয়েবলটি কনক্যাট(যুক্ত) করে নিতে হবে। হুম, এটি বিভিন্ন ভাবে করতে পারেন। আমরা উদাহরন দেখলে ক্লিয়ার হবো আশাকরি।

Single Quoted

<?php
   $name = 'Sagor';
   echo 'Hello, This is ' . $name; //Output: Hello, This is Sagor

লক্ষ্য করুন, এখানে প্রথমের অংশটি একটি স্ট্রিং এবং পরেরটি একটি ভ্যারিয়েবল, দুটোকে ডট (.) দিয়ে সংযুক্ত করা হয়েছে। এটাকে Concat করা বলে। আচ্ছা এবার ধরা যাক আমি আউটপুট টা এমন চাচ্ছি, ‘Hello, This is Sagor, I love PHP’, এবং এখানে Sagor নাম টি $name ভ্যারিয়েবল থেকে আসবে, তাহলে কি করতে হবে? খুব Simple.

<?php
   $name = 'Sagor';
   echo 'Hello, This is ' . $name . ', I love PHP'; //Output: Hello, This is Sagor, I love PHP

দুইবার ডট (.) দিয়ে Concat করা হয়েছে। নিশ্চই বুঝতে পেরেছেন। এবার ধরুন ডট দিয়ে Concat না করে সরাসরি ভ্যারিয়েবল টি কে সিঙ্গেল কোটেশনের ভিতরে লিখে ফেললাম, তাহলে কি ঘটনা ঘটবে?

<?php
   $name = 'Sagor';
   echo 'Hello, This is $name, I love PHP'; //Output: Hello, This is $name, I love PHP

তখন আপনার কম্পাইলার বুঝবে না যে $name একটি ভ্যারিয়েব। এটিকে একটি স্ট্রিং হিসেবে ধরে নিবে। এবং আউটপুট আসবে Hello, This is $name, I love PHP
অর্থাৎ Single Quote এ Specify করা হলে কম্পাইলার পুরোটাকে একটি String ধরে নেয়।

Double Quoted

একইভাবে ডাবল কোটেও আমরা ডট কনক্যাট করতে পারি। এবং আউটপুট একই আসবে।

<?php
   $name = 'Sagor';
   echo "Hello, This is " . $name . ", I love PHP'; //Output: Hello, This is Sagor, I love PHP

কিন্তু মজার ব্যাপার হলো আমরা যাবল কোটের মধ্যে ভ্যারিয়েবল লিখলে সেটি স্ট্রিং হিসেবে কাউন্ট না করে তার মান পার্স করে নিবে। উদাহরন দেখি:

<?php
   $name = 'Sagor';
   echo "Hello, This is $name, I love PHP'; //Output: Hello, This is Sagor, I love PHP

খেয়াল করুন, এখানে কিন্তু আমরা ডট দিয়ে কনক্যাট করি নাই। তারপরও কাঙ্খিত আউটপুট পেয়েছি। যদিও বেস্ট প্যাক্টিস হচ্ছে এভাবে লেখা:

<?php
   $name = 'Sagor';
   echo "Hello, This is {$name}, I love PHP'; //Output: Hello, This is Sagor, I love PHP

এই দুটিই মুলত সিঙ্গেল কোটেড এবং ডাবল কোটেড এর মধ্যে মেজর পার্থক্য। এর বাইরে আরও কিছু পার্থক্য আছে। যেগুলো প্রোগ্রামিং করতে গেলে ধীরে ধীরে বুঝতে পারবেন, তারপরও দু’একটা দেখা যাক।

<?php
    echo 'Hello, I'm Sagor'; //এটি Error দিবে, কারন সিঙ্গেল কোটের ভিতর সরাসরি সিঙ্গেল কোট লেখা যায় না
//সেক্ষেত্রে ব্যকাস্লাশ দিয়ে Escaped করে নিতে হবে
    echo 'Hello, I\'m Sagor'; //Output: Hello, I'm Sagor
    echo 'Hello this is \n a newline'; //Output: Hello this is \n a newline (অর্থাৎ সম্পুর্ণ স্ট্রিং হিসেবে প্রিন্ট হলো।)
//ডাবল কোটের ক্ষেত্রে
    echo "Hello this is \n a newline";
    //Output: Hello this is
    //        a newline [অর্থাৎ একটি নতুন লাইন তৈরী হয়েছে।]

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

এই ছিলো আজকের মত। অসংখ্য ধন্যবাদ। #HappyCoding

Leave a Reply

Your email address will not be published. Required fields are marked *