Wywołaj po prostu
<?php
print get_class
($this); //w klasie rodzica - otrzymasz nazwę klasy potomnej ?>
Spotkałem z tym problemem. Troszkę od innej strony - gdy chcemy w klasie rodzica wywołać metodę z klasy rodzica, przesłoniętą w pochodnej

Problem można rozwiązać tylko przez kolejną metodę w klasie pochodnej
<?php
class A
{
public function doMetohdFromB()
{
print $this->method().'<br />'; print self::method() //
?
}
public function method()
{
print 'Hi, Im method in A class<br />'; }
}
class B extends A
{
public function method()
{
print 'Hi, Im method in B class<br />'; }
}
$o=new B();
$o->doMetohdFromB();
/*
* will produce
*
* Hi, Im method in B class
*/
?>
A teraz:
<?php
class A
{
public function doMetohdFromB()
{
print $this->method().'<br />'; print $this->parentMethod(); // wywołaj self::method() :)
}
public function method()
{
print 'Hi, Im method in A class<br />'; }
}
class B extends A
{
public function method()
{
print 'Hi, Im method in B class<br />'; }
public function parentMethod()
{
}
}
$o=new B();
$o->doMetohdFromB();
/*
* Wyprodukuje
*
* Hi, Im method in B class
* Hi, Im metthod in A class
*/
?>
Pozdrawiam