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。
我想以静态方式使用 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。