我想知道为什么不能为枚举提供一个__toString
实现。
IDE显示“Enum may not include '__toString'”。但这是我创建枚举后首先考虑的事情。以前我在代码中使用封装字符串的值对象,当需要时使用字符串强制转换。现在我想将它们迁移到枚举,但那些对象拒绝了。
#[Immutable]
enum SaveKlinesFromApiQueue: string
{
case DEFAULT = 'save_klines_from_api_queue';
case PRIORITY = 'save_klines_from_api_priority_queue';
public function __toString(): string
{
return $this->value;
}
}
__toString()
会让人们(在调试时)感到困惑,因为它允许将枚举传递给接受字符串类型参数的方法,就像类一样。 - Chris HaasSaveKlinesFromApiQueue
的一个对象实例。当您执行echo SaveKlinesFromApiQueue;
时,$this
应该指的是什么? - Rain