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