I am not sure if this should be considered a bug. If it should be, I
would be happy to report it.  I did a search for debug_backtrace and
static and found no hits in the bug database.

If you call a static method from inside of another classes method,
debug_backtrace reports the calls as being a method of the hosting
object's class, not the static call.  IMO, it should still be reported
as a static function call, even if it happens to be invoked from
within a class.  Here is a simple test case:

class S {
        function bt() {
                $bt = debug_backtrace();
                echo $bt[0]['class'], $bt[0]['type'], $bt[0]['function'], "\n";
        }
}
class C extends S {}
class O {
        function t() {
                S::bt(); 
        }
}

//okay S::bt
S::bt();

//also okay C->bt
$o = new C;
$o->bt();

// problem?  reports O->bt, but I think it should have been S::bt
$o2 = new O;
$o2->t();

Is this perhaps caused by confusion related to the scope resolution
operator between the static call, and trying to resolve parent::
inheritance?

Regards,
Jason
-- 
http://blog.casey-sweat.us/

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to