【问题标题】:Why not use 'protected' or 'private' in PHP?为什么不在 PHP 中使用“受保护”或“私有”?
【发布时间】:2010-09-16 20:09:27
【问题描述】:

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

【问题讨论】:

    标签: php encapsulation


    【解决方案1】:

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

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

    【讨论】:

    • PHP4 将生成 E_STRICT 警告。
    • E_STRICT 是在 PHP5 中引入的,除非我误解了你的意思
    • 有一段时间情况正好相反:最初的几个 PHP 5 版本在使用“var”时抱怨。
    • 您链接的图表在 2008 年结束。另一方面,4.3 和 4.4 分别提到。无论如何,当您查看更实际的统计数据时,会发现完全不同:w3techs.com/technologies/details/pl-php/all/all 只有 10% PHP4
    【解决方案2】:

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

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

    无论哪种方式,我都没有被出售,但我希望看到对该文章的知情反驳,如果存在的话。

    【讨论】:

    • +1 以获得非常有趣(且有说服力)的链接。那么,在过去的两年里,你选择了哪种方式?
    • 嘿,在过去的两年里,我没有做太多的 PHP 编码:P。但我通常赞成给人们足够的绳索:)
    【解决方案3】:

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

    PHP 4 classes and objects

    PHP 5 classes and objects

    【讨论】:

      猜你喜欢
      • 2013-01-03
      • 2013-03-15
      • 2019-07-24
      • 2012-02-02
      • 1970-01-01
      • 2018-10-21
      • 2016-01-18
      • 2012-09-28
      • 2011-10-07
      相关资源
      最近更新 更多