下划线方法前缀

Ema*_*sev 5 php naming-conventions

我一直在研究CodeIgniter和CakePHP的代码,我注意到它们类中的一些方法以下划线_或双下划线为前缀__.

那是什么意思?

Gor*_*don 12

在那里没有任何的情况下,PHP的魔术方法,它是为了表明能见度在缺乏适当的能见度关键字:

蛋糕编码约定:

由于我们不能将PHP5的私有和受保护关键字用于方法或变量,因此我们同意以下规则:

  • 受保护的方法或变量名称以单个下划线("_")开头.
  • 私有方法或变量名称以双下划线("__")开头.

CodeIgniter约定:

只有您的类在内部访问的方法和变量,例如公共方法用于代码抽象的实用程序和辅助函数,应该以下划线为前缀.

  • 有趣的注意事项:使用像这样的双重前缀反对PHP的[推荐](http://www.php.net/manual/en/language.oop5.magic.php):`PHP保留所有以__开头的函数名称as神奇.建议你不要在PHP中使用带__的函数名,除非你想要一些记录的魔术功能 (5认同)
  • @Emanuil因为CakePHP想要向后兼容PHP4.这是关于CakePHP的主要批评之一,因为它们将框架限制为现在死亡版本的功能.即使对于PHP5并且与可见性相结合,单个下划线符号也很常见.请参阅PEAR或ZF编码约定. (2认同)