PHP – ম্যাজিক কনস্ট্যান্টস (Magic Constants)

✨ PHP – ম্যাজিক কনস্ট্যান্টস (Magic Constants)

পরিচিতি (Introduction)

PHP-তে Magic Constants হলো কিছু প্রি-ডিফাইন্ড কনস্ট্যান্ট, যেগুলো স্ক্রিপ্ট রান করার সময় ডায়নামিক ভ্যালু প্রদান করে। এগুলো “ম্যাজিক” কারণ এদের ভ্যালু রানটাইমে পরিবর্তিত হয়, যেমন: কোন লাইনে কোড লিখা হয়েছে, কোন ফাইল বা ফাংশনে কোড চলছে ইত্যাদি।


ম্যাজিক কনস্ট্যান্ট লিস্ট

PHP-তে মোট ৮টি প্রধান ম্যাজিক কনস্ট্যান্ট আছে:

  1. __LINE__
  2. __FILE__
  3. __DIR__
  4. __FUNCTION__
  5. __CLASS__
  6. __TRAIT__
  7. __METHOD__
  8. __NAMESPACE__

১. __LINE__

বর্তমান লাইনের নাম্বার রিটার্ন করে।

<?php
echo "এই কোডটি রয়েছে লাইনে: " . __LINE__;
?>

২. __FILE__

সম্পূর্ণ ফাইল পাথ (ফাইলের অবস্থান) রিটার্ন করে।

<?php
echo "ফাইলের অবস্থান: " . __FILE__;
?>

৩. __DIR__

ফাইলটি যেই ডিরেক্টরিতে আছে সেই ডিরেক্টরির পাথ রিটার্ন করে।

<?php
echo "ডিরেক্টরি: " . __DIR__;
?>

৪. __FUNCTION__

যেই ফাংশনের ভিতরে আছে সেই ফাংশনের নাম রিটার্ন করে।

<?php
function testFunc() {
  echo "এই ফাংশনের নাম: " . __FUNCTION__;
}
testFunc();
?>

️ ৫. __CLASS__

যেই ক্লাসের ভিতরে আছে সেই ক্লাসের নাম রিটার্ন করে।

<?php
class Demo {
  function showClass() {
    echo "এই ক্লাসের নাম: " . __CLASS__;
  }
}
$obj = new Demo();
$obj->showClass();
?>

৬. __TRAIT__

যেই ট্রেইট ব্যবহার করা হয়েছে তার নাম রিটার্ন করে। (PHP 5.4+)

<?php
trait SampleTrait {
  function showTrait() {
    echo "ট্রেইটের নাম: " . __TRAIT__;
  }
}
class MyClass {
  use SampleTrait;
}
$obj = new MyClass();
$obj->showTrait();
?>

৭. __METHOD__

সম্পূর্ণ ক্লাসের মেথডের নাম (className::methodName) রিটার্ন করে।

<?php
class Tool {
  function doSomething() {
    echo "মেথডের নাম: " . __METHOD__;
  }
}
$t = new Tool();
$t->doSomething();
?>

৮. __NAMESPACE__

বর্তমান নেমস্পেস রিটার্ন করে। (PHP 5.3+)

<?php
namespace MyProject;
echo "নেমস্পেসের নাম: " . __NAMESPACE__;
?>

উপসংহার

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


 

Leave a Reply