PHP 接口有属性吗?

新手上路,请多包涵

PHP 中的接口有属性,还是只有方法?

原文由 never_had_a_name 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 311
2 个回答

这取决于你所说的“属性”是什么意思。如果您指的是实际字段,那么不,他们没有。如果您指的是 C# 中的属性,那么是的,它们可以(因为属性访问器无论如何都是访问器方法的严格语法糖)。 The same goes for events (though of course, in each case, no implementation is specified for the get / set or add / remove 访问器)。

更新:由于 PHP 没有 get / set 访问器意义上的属性,那么你的问题的答案是否定的。接口不能携带自己的数据/状态。

原文由 Will Vousden 发布,翻译遵循 CC BY-SA 2.5 许可协议

您可以在 DocBlock 中为接口声明属性。然后,IDE 将提示接口的这些属性(PhpStorm 会提示),但这不会强制在实现类中实际实现这些字段。例如

/**
 * @property string $password
 * @property string $username
 */
interface IUserDocument
{

}

原文由 Josef Sábl 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏