Php 是否严格需要确定类函数是否是公共的?

Php 是否严格需要确定类函数是否是公共的?,php,oop,Php,Oop,在浏览其他人的源代码时,我注意到有些人在他们的类中将公共函数定义为public。我知道类变量需要这个定义,但是声明为方法定义可见性是可选的,[类方法可以定义为public、private或protected。没有任何显式可见性关键字的方法被定义为public。] 将函数专门定义为public而不是让PHP假定它是public有什么好处吗?不是每个人都知道给定语言特性的默认可见性是什么。例如,在C++中,结构和类基本上是相同的,默认情况下,结构成员和公共默认的类是私有的,这不会阻止人们指定它们是什

在浏览其他人的源代码时,我注意到有些人在他们的类中将公共函数定义为
public
。我知道类变量需要这个定义,但是声明为方法定义可见性是可选的,[
类方法可以定义为public、private或protected。没有任何显式可见性关键字的方法被定义为public。
]


将函数专门定义为public而不是让PHP假定它是public有什么好处吗?

不是每个人都知道给定语言特性的默认可见性是什么。例如,在C++中,结构和类基本上是相同的,默认情况下,结构成员和公共默认的类是私有的,这不会阻止人们指定它们是什么。
通过明确说明给定特性的可见性,就不会产生混淆。这使人们能够更快地阅读和消化代码,对那些不熟悉默认可见性的人尤其有用。

定义属性或方法的公共可见性没有编程优势

但是在代码样式方面有很大的优势。php初学者可能不知道函数在默认情况下是公共的。另外,始终为函数添加可见性也是有意义的,否则私有/受保护函数和公共函数的代码样式就不同了


psr-2甚至考虑到了这一点,这迫使您考虑。

“将函数专门定义为公共函数是否有任何好处”-是的。一致性和可读性是一个主要好处。由于您仍然需要设置
protected
private
,因此也可以使用
public
。没有它,您必须阅读PHP文档才能知道/理解,如果您还不熟悉PHP,public是默认设置。如果IMO没有违约,情况可能会更好。