为什么不使用';受保护';或者';private';在PHP中


Why not use 'protected' or 'private' in PHP?

我一直在使用Joomla框架,我注意到它们使用约定来指定私有或受保护的方法(它们在方法名称前加下划线"_"),但它们没有显式声明任何方法publicprivateprotected。为什么会这样?这与便携性有关吗?publicprivateprotected关键字在旧版本的PHP中不可用吗?

public、private和protected是PHP5关键字。不幸的是,PHP4仍然有很高的安装基数(尤其是在共享托管服务中)。

这是一张显示七月使用率的漂亮照片(法语文本)剧透:遗憾的是,php4的使用率仍然超过35%。

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

包括:使编码和读取代码更加困难。使类的重用和调试更加困难。

无论哪种方式,我都不买账,但我希望看到对那篇文章的知情反驳,如果有的话。

PHP5在对象模型中引入了一些重大更改。除了支持可见性之外,还有其他各种变化。请务必查看:

PHP 4类和对象

PHP 5类和对象