PHP - 函数/变量命名

时间:2008-12-12 04:09:22

标签: php naming-conventions

我已经阅读了很多开源PHP项目的流行标准手册。

很多强制执行变量空格的下划线,并强制执行camelCase。

全局函数和变量的名称应该与类方法/属性的命名方式不同吗?

我知道最重要的是一致性,但我想听听有关这方面的一些想法。

你会推荐什么?

8 个答案:

答案 0 :(得分:13)

我发现camelCase打字更加愉快,因为我发现下划线有点尴尬。

不要使用全局变量。

我避免在PHP中进行程序编码,我发现OOP更容易保持组织有序。此外,PHP的全局命名空间中是否还有足够的内容?

一般来说,我会坚持:

  • 类别为StudlyCaps单数或复数名词,视情况而定:ItemRowDBItems
  • 变量是小写名词,单数或复数,取决于它们的含义:$column$name
  • 常量是单数大写名词:DEBUGTYPE_FOO
  • 方法是camelCase,以单数动词(getperformdo)开头,后跟名词(单数或复数)描述它的操作或返回({{ {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。通过这种方式,我可以grepSomeField轻松some_table找到所有引用它的内容。

您不必使用这个确切的系统,但能够搜索对字段或表的所有引用是一个巨大的好处。

答案 5 :(得分:0)

我以前更喜欢使用camelCase,但为了在更大的应用程序中保持一致,我采用了CodeIgniter的样式指南。

即使您不使用他们的框架,您也可以欣赏定义清晰而全面的样式所做的工作:http://codeigniter.com/user_guide/general/styleguide.html

答案 6 :(得分:0)

我的目标 - 无论名称的具体格式如何 - 都在添加更多信息。名称是否可以提高对代码的理解和/或表达重要的内容?

如果确实如此,那么你已经成功了。

如果名称没有添加任何内容,为什么还要为它命名呢?

本周早些时候我写过这篇文章:

http://caseysoftware.com/blog/useful-naming-conventions

答案 7 :(得分:0)

我建议您阅读PEAR Coding Standards。由于PEAR是官方的PHP扩展和应用程序库,因此可以将其视为该语言的官方编码标准。