7

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

很多对变量空间强制使用下划线,并且很多强制使用驼峰式。

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

我知道最重要的是一致性,但我想听听对此的一些想法。

你会推荐什么?

4

8 回答 8

14

我发现 camelCase 打字更舒服一些,因为我觉得下划线打字有点尴尬。

不要使用全局变量。

我避免在 PHP 中进行程序编码,我发现 OOP 更容易让事情井井有条。此外,PHP 的全局命名空间中还没有足够的东西吗?

通常我会尝试坚持:

  • 类是 StudlyCaps 的单数或复数名词,视情况而定:Item, Row, DB, Items.
  • 变量是小写名词、单数或复数,具体取决于它们的含义:$column,$name
  • 常量是单数大写名词:DEBUG, TYPE_FOO.
  • 方法是驼峰式,以单数动词 ( get, perform, do) 开头,后跟一个名词(单数或复数)描述其操作或返回的内容 ( getThing(), getThings())

这绝对取决于您要编码的内容。如果我正在编写 PHP 或 PEAR,我使用 camelCase。如果我在做 Python/Django,我会使用 under_scores。如果我正在编写 ELisp,我会使用虚线分隔符。

于 2008-12-12T04:36:16.150 回答
2

在 PHP 本身中,几乎每个原生函数都用下划线分隔。文档中的大部分 PHP 代码示例都用下划线分隔。

在大多数语言中,我认为 Camel 或 Pascal Casing 更合适,但我认为在 PHP 中使用下划线分隔有明确的历史。

于 2008-12-12T05:28:08.853 回答
1

Zend Frameworks 命名约定(基于 PEAR)可能是您在 PHP 世界中最接近标准的。就个人而言,我更喜欢使用 lowercase_underscore 作为变量名,但除此之外我主要遵循 ZF 的约定。

10周年更新:

如今,有一个标准,在社区中被广泛接受。你应该坚持这一点:

https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-1-basic-coding-standard.md

于 2008-12-12T16:21:13.440 回答
0

是的,最重要的是一致性。如果您是唯一的开发人员,请坚持使用一种方法。如果您正在与团队合作,请与其他团队成员交谈。区分全局变量、函数/方法和类将使阅读代码更容易。对于某些人来说,camelCase 比 using_underlines 更容易,因此您的团队需要讨论选项并选择一种样式。

于 2008-12-12T04:27:41.440 回答
0

注意:我的 MySQL table_names 使用下划线,MySQL 字段名称使用 UpperCamelCase:

通常我将 $lowerCamelCase 用于变量名称和类属性,但如果它包含来自字段的值,我使用 $UpperCamelCase 字段名称,或者如果它是来自表的数据数组,我将使用 $table_name。这样我可以很容易地grep找到SomeFieldsome_table找到所有引用它的东西。

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

于 2008-12-12T04:35:17.620 回答
0

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

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

于 2008-12-12T13:31:40.740 回答
0

我的目标——无论名称的具体格式如何——是添加更多信息。名称是否提高了对代码的理解和/或表达了一些重要的东西?

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

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

本周早些时候,我在这篇文章中写道:

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

于 2008-12-12T17:40:24.390 回答
0

我建议阅读PEAR 编码标准。由于 PEAR 是官方的 PHP Extension and Application Repository,它可以被认为是该语言的官方编码标准。

于 2008-12-12T17:47:44.063 回答