为什么不在PHP中使用'protected'或'private'?

时间:2008-10-13 04:44:51

标签: php encapsulation

我一直在使用Joomla框架,我注意到他们使用约定来指定私有或受保护的方法(他们在方法名称前放置了一个下划线“_”)但是他们这样做了未明确声明任何方法publicprivateprotected。为什么是这样?它与便携性有关吗?旧版本的PHP中不提供publicprivateprotected关键字吗?

3 个答案:

答案 0 :(得分:17)

public,private和protected是PHP5关键字。不幸的是,PHP4仍然具有非常高的安装基础(特别是在共享主机服务中)。

这是一个显示7月使用率的pretty pic(法文文本)。 剧透:遗憾的是,php4的使用率仍然超过35%。

答案 1 :(得分:3)

在此处不使用private方法和属性有一些很好的论据:http://aperiplus.sourceforge.net/visibility.php

包括:使编码和阅读代码更难。重新使用类和调试。

我没有以任何方式出售,但我希望看到该文章的明确反驳,如果有的话。

答案 2 :(得分:2)

PHP5在对象模型中引入了一些重大变化。在支持可见性中,还有其他各种变化。一定要看看:

PHP 4 classes and objects

PHP 5 classes and objects