Is there a function that can be used to retrieve the name of a statically
called child class from within an inherited method? debug_backtrace() works
for this purpose, but I've seen people say that it is slow. Consider the
example code below. Is this a planned feature for PHP 5, or could this
possibly make it into 4.x? What options do I have?
<?
class a
{
function test_backtrace()
{
$bt = debug_backtrace();
echo "class pre: ".CLASS."\n";
echo "class bt: ".$bt[0]["class"]."\n";
echo "class get_class: ".get_class($this)."\n";
}
}
class b extends a
{
}
echo "** static: \n";
b::test_backtrace();
$b = new b();
echo "** object: \n";
$b->test_backtrace();
?>
Output Looks Like:
** static:
class pre: a
class bt: b
class get_class:
** object:
class pre: a
class bt: b
class get_class: b
Perhaps get_class() could return the expected class name when
called without arguements?
--
Phil Dier
gett communications http://www.gettcomm.com/
gettlabs, inc. <http://www.gettlabs.com/