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


About PHP underscore naming convention (as in "_method" or "_property")

这是我一直想知道的一般询价。我在别人的代码中注意到很多这样的情况,但从来没有真正知道真正的原因,只是跟随趋势,所以在这里。

为什么有些方法和属性在前面加下划线,而其他的没有?例如,具体什么时候使用function _method(),什么时候使用function method(),或者换句话说,使用private $_someVariableprivate $someVariable ?

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

现在,在2013年,这是"正式"的坏样式由PSR-2编码指南:

属性名不应该用下划线前缀来表示受保护的或私有的可见性。

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

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

属性名不应该以下划线to作为前缀指示受保护的或私有的可见性'

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

***原因:

属性名称前没有下划线,如$_income,而是使用美元的收入。下划线在某些框架中使用,并且可以

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

以防万一,新的PSR-12说它绝对不能有下划线:

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

4.3属性和常量属性名不能用下划线前缀来表示受保护的或私有的可见性。

4.4方法和函数
方法名不能用下划线前缀来表示受保护或私有可见性。

这是来自php.net的官方文档,private方法和private字段前面没有下划线。


对于使用privateprotected修饰符,方法名的第一个字符必须是下划线。这是唯一可以接受的an的应用方法名中的下划线。声明为"public"的方法永远不应该包含下划线

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

注意:

PHP保留所有以__开头的符号。它是建议不要在PHP中创建以__开头的符号除非你想使用文档化的神奇功能。

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