【问题标题】:Is there a strict need to determine if class functions are public?是否严格需要确定类函数是否是公共的?
【发布时间】:2019-08-20 23:03:05
【问题描述】:

查看其他人的源代码,我注意到有些人在他们的类中专门将公共函数定义为public。我知道类变量需要这个定义,但PHP 声明定义方法的可见性是可选的,[Class methods may be defined as public, private, or protected. Methods declared without any explicit visibility keyword are defined as public.]。

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

【问题讨论】:

  • “将函数明确定义为公共有什么好处” - 是的。一致性和可读性是一个主要的好处。由于您仍然需要设置protectedprivate,因此也可以使用public
  • 如果不熟悉 PHP,则必须阅读 PHP 文档才能了解/理解 public 是默认设置。如果实际上没有默认的 IMO 可能会更好。

标签: php oop


【解决方案1】:

并不是每个人都知道给定语言功能的默认可见性是什么。例如,在 C++ 中,结构和类本质上是相同的,其中结构成员和公共默认情况下,类默认情况下是私有的 - 这不会阻止人们指定它们是什么。

通过明确说明给定功能的可见性,不会造成混淆。这可以让人们更快地阅读和消化代码,对不熟悉默认可见性的人特别有帮助。

【讨论】:

    【解决方案2】:

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

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

    psr-2 甚至会考虑到这一点,这会迫使您使用add visibility to all methods and properties

    【讨论】:

      猜你喜欢
      • 2014-12-23
      • 1970-01-01
      • 2019-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多