On 2016-08-23 16:20, Alexander Lisachenko wrote:

Ok, how can I invoke Parent::whoami() with reflection and get exactly
"Child" as an output?

class Parent {
    public static function whoami() {
        echo static::class;
    }
}

class Child extends Parent {
    public static function whoami() {
        echo "Don't call me now!';
        parent::whoami();
    }
}

Could you do it without reflection, then? I don't think so.
Thus, I think your "use case" is broken by design.

If you need to call Parent::whoami with the Child scope,
maybe you shouldn't override the method in Child class at all.

If this kind of functionality is generally needed,
maybe it could be borrowed from C++:
obj_b->A::whoami();
Translated to PHP/Reflection:
new ReflectionMethod("B", "A::whoami")->invoke();

--
Lauri Kenttä

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

Reply via email to