我一直在使用Joomla框架,我注意到它们使用约定来指定私有或受保护的方法(它们在方法名称前加下划线"_
"),但它们没有显式声明任何方法public
、private
或protected
。为什么会这样?这与便携性有关吗?public
、private
或protected
关键字在旧版本的PHP中不可用吗?
public、private和protected是PHP5关键字。不幸的是,PHP4仍然有很高的安装基数(尤其是在共享托管服务中)。
这是一张显示七月使用率的漂亮照片(法语文本)剧透:遗憾的是,php4的使用率仍然超过35%。
这里有一些不使用private
方法和属性的好论据:http://aperiplus.sourceforge.net/visibility.php
包括:使编码和读取代码更加困难。使类的重用和调试更加困难。
无论哪种方式,我都不买账,但我希望看到对那篇文章的知情反驳,如果有的话。
PHP5在对象模型中引入了一些重大更改。除了支持可见性之外,还有其他各种变化。请务必查看:
PHP 4类和对象
PHP 5类和对象