我想以静态方式使用PHP的__toString()
方法,如下所示:
class MyClass {
public static function __toString() {
echo 'Hello, I am MyClass!';
}
}
echo (string) MyClass;
不幸的是,虽然__toString()
不能是静态方法。如果这是可能的,那将是很好的,所以我的问题是:这是一个合理的建议作为PHP开发人员的功能请求?如果没有,我们如何能够像我的实例所描述的那样实现这种功能?
答案 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。