PHP constant হচ্ছে Variable এর মতই কোনো একটা সাধারণ স্থায়ী Value বা মানের জন্য Identifier বা নাম, Constant এর সাথে Variable এর মূল পার্থক্য হচ্ছে Constant কে একবার Define করলে আর পরিবর্তন করা যায় না অথবা দ্বিতীয়বার আর declare বা ঘোষণা করা যাবেনা। যেখানে Variable এর মান কে সমস্ত কোড জুড়ে যেকোনো জায়গায় পরিবর্তন করা যায়।
PHP তে কিভাবে Constant ঘোষণা করবো?
PHP তে define() function অথবা const keyword দিয়ে constant ঘোষণা করতে হয়। একটি Valid Constant নাম শুরু হয় লেটার(letter) বা (_) Underscore দ্বারা। Constant নামের পূর্বে ডলার($) সাইন দেওয়া যাবেনা। PHP তে Constant এর নাম case sensitive.যেমন PHP এর দৃষ্টিতে, a এবং A দুটি আলাদা কনস্ট্যান্ট। Constant নামে কোনো ফাঁকা (স্পেস) থাকা যাবেনা।যদি নাম একের অধিক হয় তাহলে “_”underscore (first_name) অথবা বড় হাতের অক্ষরে(firstName) লিখতে হবে। চলুন নিচের উদাহরণ থেকে বুঝে নেয়া যাক :
<?php
define("CONSTANT", "Hello world.");
const TEST="Hello Bangladesh";
echo CONSTANT; // outputs "Hello world."
echo TEST; // outputs "Hello Bangladesh."
echo Constant; // outputs "Constant" and issues a notice.
echo Test; // outputs "Test" and issues a notice.
?>
define() function এবং const keyword এর মধ্যে কোনো পার্থক্য আছে ?
PHP তে define function দিয়ে খুব সহজে যেকোনো Constant কে Case-Insensitive করে দিতে পারেন। যা const keyword দিয়ে সম্ভব না, অর্থাৎ :কেও চাইলেও PHP তে Constant এর নামের Letter Case পরিবর্তন করে একই নামে দুটি Constant তৈরী করতে পারবেনা। নিচের উদাহরণ দিয়ে আরেকটু ভালো ভাবে বুঝা যাক।
<?php
define("TEST", "Hello world.",true);
define ("test","Hi World"); // outputs "test" and issues a notice.and show message already defined
echo test;
?>
এবার নিচের উদাহরণ লক্ষ্য করুন :
<?php
define("TEST", "Hello world.",true);
echo test; // outputs "Hello world."
echo TEST; // outputs "Hello world."
?>
ব্যাখ্যাঃএখানে যদিও আমাদের TEST constant টি Upper-Case কিন্তু আমরা Lower-Case test এ ও একই ফলাফল পাবো।
PHP তে constant কি local scope? নাকি gobal scope?
সমগ্র কোড জুড়েই Constant স্বয়ংক্রিয়ভাবে Global হয়। চলুন নিচের উদাহরণ থেকে বুঝে নেয়া যাক :
<?php
define("TEST", "Hello world.");
function test(){
echo TEST;
}
test(); // outputs "Hello world."
?>
ব্যাখ্যাঃPHP তে কনস্ট্যান্ট Global Scope হওয়ায় TEST কন্সটেন্টটি Function এর বাহিরে হওয়া সত্ত্বেও , আমরা Function এর ভিতর থেকে call করতে পেরেছি।