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

Swa*_*der 21 php naming-conventions php-5.3

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

为什么一些方法和属性在前面用下划线命名,而其他方法和属性不是?例如,当具体地将一个使用function _method(),并且当将一个使用function method(),或,换言之,private $_someVariableprivate $someVariable

Mar*_*ker 22

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

  • 从来没有意识到这背后的原因,感谢分享.我觉得它很有帮助但仍然使用约定,但它允许私有方法与公共方法"共享"名称,并使它们突出一点. (2认同)

Sli*_*liq 13

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

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

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

  • @w5m 我不知道,但你可以问 PSR 的人,他们通常会非常快速和公开地回答问题(他们在某处有一个“谷歌小组”)。 (2认同)

小智 7

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

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

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

***原因:

在属性名称之前没有下划线,比如$ _income,而是使用$ income.下划线在某些框架中使用,可能与PHP魔术变量混淆.

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