代码之家  ›  专栏  ›  技术社区  ›  Casper

避免在php中使用访问修饰符的原因[closed]

  •  4
  • Casper  · 技术社区  · 5 年前

    在php中不使用public、private和protected关键字的有效理由是什么?

    故事:我和一个团队开始了一个项目,他们在代码中积极使用访问修饰符(甚至显式地使用“public”),并希望说服我也这么做。我总是觉得这种东西在php这样的动态语言中完全没有用,但我意识到我的直觉在技术讨论中并不是一个论据。因此,我正在寻找一个坚实、清晰的解释,解释为什么访问修饰符在php中是无用的(甚至是有害的)。

    我知道有些类似的话题已经存在了

    • 我不是在问我是否应该使用“public”。我已经不用了。
    • 他们很坏,我只需要一个专家来确认)。

    短暂性脑缺血发作

    4 回复  |  直到 7 年前
        1
  •  9
  •   Gordon    14 年前

    在php中不使用关键字public,private,protected的正当理由?

        2
  •  8
  •   troelskn    14 年前

    这个 private 修饰语被过度使用了。它的问题是它使得扩展类变得不可能。但更重要的是,这是一个概念,导致一个人编写的代码是面向类的,而不是面向对象的。

    我对你没有意见 protected 对于属性。事实上,我认为它应该是唯一使用的范围。 受保护的 方法通常是一个麻烦,因为它使测试更加困难。

        3
  •  4
  •   Sjoerd    14 年前

    在像PHP这样的动态语言中,假定程序员知道代码是如何工作的。这意味着程序员知道应该调用哪些方法,哪些不应该直接调用。

        4
  •  4
  •   Casper    4 年前

    mario

    访问修饰符在爪哇/C++和编译代码中是有意义的,在那里它们是可执行的。在未编译的脚本语言中,它们很容易被删除。因此,它们应该被视为仅仅是装饰器,因此实际上可以仅仅作为编码约定来实现。(请参阅Python中的下划线,以及几乎所有其他脚本语言。PHP与它的无目的访问修饰符是相当单独的。)

    你不会成功地说服你的队友相信有用的api比限制性封装的优势。语法强制访问修饰符的使用通常是由邪教驱动的。