PHP 接口有属性吗?
PHP中的接口是有属性,还是只有方法?
这取决于您所说的“属性”是什么意思。如果你指的是实际的字段,那么不,它们不是。如果您指的是诸如C#中的属性,那么是的,它们可以(因为无论如何,属性访问器都是严格意义上的语法糖)。事件也是如此(当然,在每种情况下,都没有为/或/访问器指定实现)。get
set
add
remove
更新:由于PHP没有/访问器意义上的属性,因此您的问题的答案是否定的。接口不能携带自己的数据/状态。get
set
您可以在 DocBlock 中为接口声明属性。然后,IDE 将提示接口的这些属性(PhpStorm 会这样做),但这不会强制在实现类中实际实现这些字段。
/**
* @property string $password
* @property string $username
*/
interface IUserDocument
{
}