কন্সট্যান্টস, এক্সপ্রেশনস ও অপারেটরস
অপরিবর্তনশীল কন্সট্যান্টস
কন্সট্যান্ট এর নাম শুনেই বোঝা যাচ্ছে এর কাজই হলো পরিবর্তন না হওয়া । কনস্ট্যান্ট হিসেবে আমরা খুব সিম্পল ভ্যালু সংরক্ষণ করতে পারি । define
ব্যবহার করে আমরা কন্সট্যান্ট তৈরি করি ।
কন্সট্যান্ট এর নাম সাধারনত বড় হাতের লেখা হয় । নামকরণের ক্ষেত্রে ভ্যারিয়েবলের মতই শুরুতে সংখ্যা ব্যবহার করা যায় না, নামটি কেইস সেনসিটিভ ।
এক্সপ্রেশনস
পিএইচপির খুব গুরুত্বেপূর্ণ একটি বিষয় হচ্ছে এক্সপ্রেশন । পিএইচপিতে আমরা মোটামোটি যাই লিখি তার সবই এক্সপ্রেশন । একটি এক্সপ্রেশন এর সবসময়ই একটি ভ্যালু থাকে ।
আমরা যখন একটি ভ্যারিয়েবল কিংবা কন্সট্যান্ট ডিফাইন করি তখন কিন্তু আমরা একটি এক্সপ্রেশন ব্যবহার করছি । যেমন:
এখানে আমরা $name
ভ্যারিয়েবল এ masnun
স্ট্রিংটি এ্যাসাইন করেছি । এখানে এই "masnun"
অংশটুকু হলো একটি এক্সপ্রেশন যার ভ্যালু হলো স্ট্রিং masnun
।
আবার যখন এই ভ্যারিয়েবলটিকেই পুনরায় আরেকটি ভ্যারিয়েবল এ এ্যাসাইন করছি তখন:
এখানে কিন্তু $name
অংশটুকু একটি এক্সপ্রেশন যার ভ্যালু হচ্ছে masnun
। এখানে আমরা $nickname
এর ভ্যালু হিসেবে $name
এক্সপ্রেশনের ভ্যালুকে এ্যাসাইন করেছি ।
এক্সপ্রেশনের ব্যাসিকটা বুঝে নেওয়া জরুরী কেননা পিএইচপি এক্সপ্রেশন ভিত্তিক ল্যাঙ্গুয়েজ, পিএইচপিতে নানা ধরণের জটিল জটিল এক্সপ্রেশন ব্যবহার করে পরবর্তীতে আমাদের নানা সমস্যার সমাধান করা লাগবে ।
অপারেটরস
অপারেটর এক বা একাধিক ভ্যালু কিংবা এক্সপ্রেশনের সম্মিলন ঘটিয়ে একটি নতুন ভ্যালু তৈরি করে । যেমন:
এখানে শেষ লাইনে এসে তিনটি ভিন্ন এক্সপ্রেশন এর সমন্বয়ে আমরা নতুন একটি ভ্যালু পাচ্ছি । $a + $b + 2
এটি নিজেও কিন্তু একটি এক্সপ্রেশন । সুতরাং আমরা এভাবেও বলতে পারি, অপারেটরের কাজ হচ্ছে একাধিক এক্সপ্রেশনের সমন্বয়ে নতুন একটি বৃহদাকার এক্সপ্রেশন তৈরি করা ।
অপারেটর প্রিসিডেন্স
শুরুতেই আসুন একটি সহজ অঙ্ক করি:
বলুনতো এটার ফল কেন 10
হবে? কারণ আমরা জানি এখানে সবার আগে ভাগ এবং গুন এর কাজ করতে হবে এরপর যোগ বিয়োগ । এটাই গনিতের নিয়ম, এখানে এই যে আমরা ভাগ এবং গুনকে অগ্রাধিকার দিলাম, এটাই অপারেটর প্রিসিডেন্স । যখন পিএইচপিতে একাধিক এক্সপ্রেশনের মধ্যে আমরা এমন করে অপারেটর ব্যবহার করি তখন কোন কোন অপারেটর অগ্রাধিকার পায় - তাই সঠিক ফলাফল পেতে আমাদেরকে অপারেটর প্রিসিডেন্স সম্পর্কে বিস্তারিত জানতে হবে ।
অপারেটর প্রিসিডেন্স সম্পর্কে আরো বিস্তারিত জানতে পিএইচপি ম্যানুয়ালের এই চ্যাপ্টারটি দ্রষ্টব্য - http://php.net/manual/en/language.operators.precedence.php - পরবর্তীতে এই কন্টেন্টও বাংলায় বিশদভাবে ব্যখ্যা করে লেখার ইচ্ছা আছে ।
কমন অপারেটরস
গানিতিক অপারেটরগুলো আমরা সবাই কমবেশী চিনি:
এ্যাসাইনমেন্ট অপারেটর (=
) এর সাথে আমরা ইতোমধ্যে পরিচিত হয়েছি, এটার মাধ্যমে আমরা ভ্যালু এ্যাসাইন করি ।
এখন $b
এর মান 4
এবং $a
এর মান হবে 9
। অবজেক্ট টাইপ ব্যতিত প্রায় সকল টাইপের ক্ষেত্রেই এ্যাসাইনমেন্ট অপারেটর ডান পাশের এক্সপ্রেশনের ভ্যালু কপি করে, তাই মূল এক্সপ্রেশনে ব্যবহৃত ভ্যারিয়েবলগুলোর ভ্যালু পরিবর্তন হয় না । তবে আমরা যদি একই চাই যে দুটি ভ্যারিয়েবল ই একই মেমরী ব্লক তথা একই ডাটাকে নির্দেশ করুক সেক্ষেত্রে আমরা একটা &
যোগ করে দিতে পারি নিচের মত করে:
এটাকে এ্যসাইনমেন্ট বাই রেফারেন্স বলা হয় ।
কম্প্যারিজন অপারেটরগুলো দুটো এক্সপ্রেশনের ভ্যালু কম্পেয়ার করার জন্য ব্যবহার করা হয় । যেমন:
মনে রাখতে হবে, যদি আমরা স্ট্রিং এর সাথে নাম্বার কম্পেয়ার করি তবে পিএইচপি অটোমেটিক্যালি স্ট্রিংকে নাম্বারে কনভার্ট করবে । এরপর দুই নাম্বার ভ্যালু কম্পেয়ার করবে । তবে ===
বা !==
এর বেলায়, যেখানে টাইপ সহ কম্পেয়ার করা হয় - এসব ক্ষেত্রে টাইপ কনভার্শন অটোমেটিক্যালি হয় না ।
ইনক্রিমেন্টাল ও ডিক্রিমেন্টাল অপারেটরস:
লজিকাল অপারেটরস:
নোট: and
, or
এবং ||
, &&
একই কাজ করলেও এদের অগ্রাধিকার ভিন্ন । যেটা আমরা অপারটের প্রিসিডেন্স টেবিলে বিস্তারিত দেখতে পাবো ।
এছাড়া আমরা দুটো স্ট্রিং কে সংযুক্ত করতে .
অপারেটর ব্যবহার করি । যেমন:
Last updated