【发布时间】:2011-06-08 08:04:25
【问题描述】:
如果类属性(变量)或方法(函数)默认是公共的,为什么我应该使用关键字public 来声明它们?或者,是吗?
换个说法,public 是多余的吗?我理解private 和protected,但是如果类成员仍然是公开的,为什么还要声明public?
【问题讨论】:
如果类属性(变量)或方法(函数)默认是公共的,为什么我应该使用关键字public 来声明它们?或者,是吗?
换个说法,public 是多余的吗?我理解private 和protected,但是如果类成员仍然是公开的,为什么还要声明public?
【问题讨论】:
是的,public 是默认设置(请参阅visibility docs)。
人们添加它,因此它与所有其他方法/属性一致。
此外,如果您想声明一个公共属性并且不想使用public,您将需要使用var,这是不推荐的,并且可能会在某个时候被弃用。
【讨论】:
使用public 没有技术原因,但是 PSR-2 要求所有功能都需要可见性关键字,因此如果您想遵循 PSR-2,那么您应该使用它:
4.3。方法
必须在所有方法上声明可见性。
https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md#43-methods
【讨论】:
从 php 5.3 开始(我想,已经有一段时间了),使用 var 关键字会引发 E_STRICT 错误,因此必须使用 public 来声明对象变量。至于功能,我认为更多的是一致性。
【讨论】:
当然这是多余的,因为这是默认的可见性级别。你应该尽可能避免它们。有些人显式添加了public 关键字,以便代码更具可读性。
【讨论】:
public 关键字:)