我已经阅读了很多开源PHP项目的流行标准手册。
很多强制执行变量空格的下划线,并强制执行camelCase。
全局函数和变量的名称应该与类方法/属性的命名方式不同吗?
我知道最重要的是一致性,但我想听听有关这方面的一些想法。
你会推荐什么?
答案 0 :(得分:13)
我发现camelCase打字更加愉快,因为我发现下划线有点尴尬。
不要使用全局变量。
我避免在PHP中进行程序编码,我发现OOP更容易保持组织有序。此外,PHP的全局命名空间中是否还有足够的内容?
一般来说,我会坚持:
Item
,Row
,DB
,Items
。$column
,$name
DEBUG
,TYPE_FOO
。get
,perform
,do
)开头,后跟名词(单数或复数)描述它的操作或返回({{ {1}},getThing()
)这绝对取决于你的编码。如果我正在编写PHP或PEAR,我使用camelCase。如果我在做Python / Django,我会使用under_scores。如果我正在编写ELisp,我会使用虚线分隔符。
答案 1 :(得分:2)
在PHP本身中,几乎每个本机函数都以下划线分隔。文档中的大多数PHP代码示例都以下划线分隔。
在大多数语言中,我认为Camel或Pascal Casing更合适,但我认为在PHP中使用下划线分离有明确的历史。
答案 2 :(得分:1)
Zend Frameworks naming convention(基于PEAR)可能是您在PHP世界中最接近标准的。就个人而言,我更喜欢使用lowercase_underscore作为变量名,但除此之外我主要遵循ZF的惯例。
10周年纪念日更新:
这些天,有一个标准,在社区内被广泛接受。你应该坚持下去:
https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-1-basic-coding-standard.md
答案 3 :(得分:0)
是的,最重要的是一致性。如果您是单独的开发人员,请坚持使用方法。如果您正在与团队合作,请与其他团队成员交谈。区分全局变量,函数/方法和类将使得读取代码变得更加容易。对于某些人来说,camelCase比using_underlines更容易,所以你的团队需要讨论选项并选择一种风格。
答案 4 :(得分:0)
注意:我在MySQL table_names中使用下划线,我使用UpperCamelCase作为MySQL字段名称:
通常我使用$ lowerCamelCase作为变量名和类属性,但是如果它包含字段中的值,我使用$ UpperCamelCase字段名,或者如果它是表中的数据数组,我将使用$ TABLE_NAME。通过这种方式,我可以grep
或SomeField
轻松some_table
找到所有引用它的内容。
您不必使用这个确切的系统,但能够搜索对字段或表的所有引用是一个巨大的好处。
答案 5 :(得分:0)
我以前更喜欢使用camelCase,但为了在更大的应用程序中保持一致,我采用了CodeIgniter的样式指南。
即使您不使用他们的框架,您也可以欣赏定义清晰而全面的样式所做的工作:http://codeigniter.com/user_guide/general/styleguide.html
答案 6 :(得分:0)
我的目标 - 无论名称的具体格式如何 - 都在添加更多信息。名称是否可以提高对代码的理解和/或表达重要的内容?
如果确实如此,那么你已经成功了。
如果名称没有添加任何内容,为什么还要为它命名呢?
本周早些时候我写过这篇文章:
答案 7 :(得分:0)
我建议您阅读PEAR Coding Standards。由于PEAR是官方的PHP扩展和应用程序库,因此可以将其视为该语言的官方编码标准。