ऐसा लगता है कि आपने अपने प्रश्न का उत्तर दिया। get_classआपको क्लास का नाम मिल जाएगा। यह प्रक्रियात्मक है और शायद यही कारण है कि भ्रम पैदा कर रहा है। के लिए php प्रलेखन पर एक नज़र डालेंget_class
यहाँ उनका उदाहरण दिया गया है:
<?php
class foo
{
function name()
{
echo "My name is " , get_class($this) , "\n";
}
}
// create an object
$bar = new foo();
// external call
echo "Its name is " , get_class($bar) , "\n"; // It's name is foo
// internal call
$bar->name(); // My name is foo
इसे अपने उदाहरण की तरह बनाने के लिए आप कुछ ऐसा कर सकते हैं:
<?php
class MyClass
{
public static function getClass()
{
return get_class();
}
}
अब आप कर सकते हैं:
$className = MyClass::getClass();
हालांकि, यह कुछ हद तक सीमित है, क्योंकि यदि मेरी कक्षा को बढ़ाया जाता है, तो यह अभी भी 'MyClass' को लौटाएगा। हम get_called_classइसके बजाय उपयोग कर सकते हैं , जो लेट स्टेटिक बाइंडिंग पर निर्भर करता है , अपेक्षाकृत नई सुविधा है, और इसके लिए PHP> = 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(); // 'MyClass'
$className = MyExtendedClass::getClass(); // 'MyExtendedClass'
$className = MyExtendedClass::getDefiningClass(); // 'MyClass'