关于PHP下划线命名约定(如“_method”或“_property”)

时间:2011-04-23 18:40:13

标签: php naming-conventions php-5.3

这是我一直想知道的一种一般性调查。我通过其他人的代码注意到了很多,并且从来没有真正知道实际的原因,只是按照趋势,所以这里。

为什么一些方法和属性在前面用下划线命名,而其他方法和属性不是? 例如,具体使用时会function _method(),何时会使用function method(),换句话说,private $_someVariable使用private $someVariable

5 个答案:

答案 0 :(得分:22)

大多数情况下,这是PHP4的回归惯例,它不支持属性或方法的可见性,库开发人员使用_来表示应该被视为私有的东西,而不是直接从外部访问类。 PHP5确实具有可见性,但仍然经常保持约定。

答案 1 :(得分:11)

现在,在2013年,这是PSR-2编码指南的“正式”不良风格

  

属性名称不应以单个下划线为前缀,以表示受保护或隐私可见性。

来源:https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md

答案 2 :(得分:7)

***遵循PSR-2编码指南:

  

属性名称不应以单个下划线为前缀   表示受保护或私人可见性

来源:https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md

***原因:

  

在属性名称之前没有下划线,比如$ _income,而不是使用   $的收入。下划线在某些框架中使用,可以   与PHP魔术变量混淆。

来源:http://www.geekgumbo.com/2013/05/19/psr-2-coding-style-guide/

答案 3 :(得分:1)

private方法private字段之前offical document from php.net没有任何关于下划线的说法。

但请关注Zend Framework coding convention

  

对于使用private或声明的对象的方法   protected修饰符,方法名称的第一个字符必须是   一个下划线。这是唯一可接受的应用程序   在方法名称中加下下划线。方法宣布"公共"永远不应该   包含下划线。

因此,我们应该开始使用下划线命名private方法:)

<强>注意:

  

PHP将所有以__开头的符号保留为神奇的。它是   建议您不要在PHP中创建以__开头的符号   除非您想使用记录的魔法功能。

(资料来源:http://php.net/manual/en/userlandnaming.rules.php

答案 4 :(得分:0)

为了以防万一,新的 PSR-12 声明它不得有下划线:

https://www.php-fig.org/psr/psr-12/

4.3 属性和常量 属性名称不得以单个下划线为前缀来表示受保护或私有可见性。

4.4 方法和函数 方法名称不得以单个下划线为前缀来表示受保护或私有可见性。