为什么在OO PHP中不经常使用私有变量和方法? [关闭]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么在OO PHP中不经常使用私有变量和方法? [关闭]相关的知识,希望对你有一定的参考价值。
来自Java背景,尽可能经常使用私有变量和方法是正常的。在深入了解php生态系统之后,我注意到使用private
实际上非常罕见,并且经常被protected
取代。我在Drupal,Laravel和Symfony组件的源代码中注意到了这种趋势。
为什么是这样?
答案
这取决于你正在建设什么。您的示例是开源框架,其他人可能希望在使用它时扩展并覆盖提供的功能。没有什么比在那里拥有私有方法更烦人了,你只需要重写所有内容,以便在框架中做一点改变。
除此之外(即你自己的项目,就像你的公司一样,你没有开源),这个世界看起来很不一样:这里的哲学问题是你的方法是开放的还是封闭的。如果你跟随SOLID principles,它们应该是开放的延伸,但是关闭修改。我喜欢这种方法,并且主要使所有内容“尽可能安全”,并且只允许访问我需要的地方,是的,在PHP中。
所以TL; DR:取决于用例,但是也应该使用private
IS和imho。
旁注/有趣的事实:访问指定者在PHP中的类级别上工作,而不是在对象级别上工作,因此同一个类的一个对象传递给另一个相同的对象,可以访问其私有成员,反之亦然。
以上是关于为什么在OO PHP中不经常使用私有变量和方法? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章