在查看他人的源代码时,我注意到有些人会在类中将公共函数明确定义为public
。我知道类变量需要这样的定义,但PHP指出定义方法的可见性是可选的,[类方法可以被定义为public、private或protected,未明确使用任何可见性关键字声明的方法被定义为public。
]。
与让PHP假定它是公共的相比,将函数明确定义为public是否有任何好处?
并不是每个人都知道给定语言特性的默认可见性。例如,在C++中,结构体和类本质上是相同的,其中结构体成员和公共成员默认为public,而类默认为private - 这并不能阻止人们指定它们。
通过明确说明给定特性的可见性,就不会产生混淆。这使得人们能够更快地阅读和消化代码,对那些不熟悉默认可见性的人尤其有帮助。
定义属性或方法的公共可见性并没有编程上的优势。
但在代码样式方面有很大的优势。PHP初学者可能不知道函数默认是公共的。此外,始终为函数添加可见性是有意义的,否则私有/受保护函数和公共函数会有不同的代码样式。
这甚至考虑到了psr-2
,它强制你将所有方法和属性的可见性都加上。
protected
和private
,因此使用public
也是合理的。 - M. Eriksson