>From the RFC:
>
> Code which invokes get_class() without parameters should be modified to
> use __CLASS__ or get_class($this) instead,

I don't think the first option is equivalent:

class C {
    function printType() {
        echo "__CLASS__ is " . __CLASS__ . "\n";
        echo "get_class is " . get_class($this) . "\n";
    }
}

class D extends C {
    function printTypeInChild() {
        echo "__CLASS__ is " . __CLASS__ . "\n";
        echo "get_class is " . get_class($this) . "\n";
    }
}

(new D)->printType();
(new D)->printTypeInChild();

// Output is:
__CLASS__ is C
get_class is D
__CLASS__ is D
get_class is D

And unless I'm missing something, the second option doesn't appear
usable with static methods, which is also a problem with
get_parent_class()

> while code which invokes
> get_parent_class() without parameters should be modified to use
> get_parent_class($this) instead.

What would the equivalent code get_parent_class() for static methods? e.g.

class A {}

class B extends A {
    public static function foo() {
        echo get_parent_class() . " \n";
    }
}
b::foo();

cheers
Dan
Ack

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

Reply via email to