PHP:魔术方法 __toString() 的静态变体?

PHP: A static variant of the magic method __toString()?

我想以静态方式使用 PHP 的 __toString() 方法,如下所示:

class MyClass {
    public static function __toString() {
        echo 'Hello, I am MyClass!';
    }
}

echo (string) MyClass;

不幸的是 __toString() 不能是静态方法。如果这是可能的,那就太好了,所以我的问题是:将此作为向 PHP 开发人员提出的功能请求是否合理?如果不是,我们如何才能尽可能接近我的示例描述的这种功能?

你可以这样写:

echo MyClass::class;

或者如果您需要更多控制:

class MyClass
{
    public static function getClass()
    {
        return get_class();
    }
}

echo MyClass::getClass();

如果你想要一个静态的class属性,你可以使用这个:

class MyClass {
    static $name = self::class;
}

echo MyClass::$name;

另见 this answer