PHP 接口有属性吗?

2022-08-30 08:18:12

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


答案 1

这取决于您所说的“属性”是什么意思。如果你指的是实际的字段,那么不,它们不是。如果您指的是诸如C#中的属性,那么是的,它们可以(因为无论如何,属性访问器都是严格意义上的语法糖)。事件也是如此(当然,在每种情况下,都没有为/或/访问器指定实现)。getsetaddremove

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


答案 2

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

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


}

推荐