【发布时间】:2016-07-07 17:34:55
【问题描述】:
我想以静态方式使用 PHP 的 __toString() 方法,如下所示:
class MyClass {
public static function __toString() {
echo 'Hello, I am MyClass!';
}
}
echo (string) MyClass;
不幸的是,__toString() 不能是静态方法。如果这是可能的,那就太好了,所以我的问题是:作为对 PHP 开发人员的功能请求,这是否合理?如果不是,我们如何才能实现与我的示例描述的尽可能接近的这种功能?
【问题讨论】:
-
你为什么需要这个?我真的想不出一个用例。
-
用例示例:在 Yii2 中,所有基于对象的类都带有一个静态的className() 方法。它所做的只是返回被调用的类字符串。使用静态 __toString() 将不再需要该方法。
-
MyClass::class呢? -
@tkausl 这适用于这个特定的用例是的!
-
另见 PHP 内置的
get_class方法。 php.net/get_class
标签: php static-methods tostring