মনে হচ্ছে আপনি নিজের প্রশ্নের উত্তর দিয়েছেন। get_classআপনি ক্লাস নাম পাবেন। এটি প্রক্রিয়াজাতীয় এবং সম্ভবত এটিই বিভ্রান্তির কারণ ঘটছে। পিএইচপি ডকুমেন্টেশন এর জন্য একবার দেখুনget_class
এখানে তাদের উদাহরণ:
<?php
class foo
{
function name()
{
echo "My name is " , get_class($this) , "\n";
}
}
$bar = new foo();
echo "Its name is " , get_class($bar) , "\n";
$bar->name();
এটিকে আপনার উদাহরণের মতো করে তুলতে আপনি এমন কিছু করতে পারেন:
<?php
class MyClass
{
public static function getClass()
{
return get_class();
}
}
এখন আপনি এটি করতে পারেন:
$className = MyClass::getClass();
এটি কিছুটা সীমাবদ্ধ, কারণ আমার ক্লাসটি প্রসারিত হলে এটি এখনও 'মাইক্লাস' ফেরত আসবে। আমরা এর get_called_classপরিবর্তে ব্যবহার করতে পারি , যা তুলনামূলকভাবে নতুন বৈশিষ্ট্যযুক্ত লেট স্ট্যাটিক বাঁধনের উপর নির্ভর করে এবং পিএইচপি> = 5.3 প্রয়োজন।
<?php
class MyClass
{
public static function getClass()
{
return get_called_class();
}
public static function getDefiningClass()
{
return get_class();
}
}
class MyExtendedClass extends MyClass {}
$className = MyClass::getClass();
$className = MyExtendedClass::getClass();
$className = MyExtendedClass::getDefiningClass();