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

时间:2016-06-26 09:06:18

标签: php static-methods tostring

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

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

echo (string) MyClass;

不幸的是,虽然__toString()不能是静态方法。如果这是可能的,那将是很好的,所以我的问题是:这是一个合理的建议作为PHP开发人员的功能请求?如果没有,我们如何能够像我的实例所描述的那样实现这种功能?

1 个答案:

答案 0 :(得分:3)

你可以写:

echo MyClass::class;

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

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

echo MyClass::getClass();

如果您想拥有静态类属性,可以使用:

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

echo MyClass::$name;

另见this answer