2010-02-18 62 views
2

PHP(PEAR,Zend等)编码标准指定类名称应该位于上层CamelCase中,而方法和变量(关联数组键也可以)应该采用较低的camelCase格式。在CamelCase中使用类和下划线的基本原理是模拟名称空间并创建与文件位置的并行,但是有些时候我发现它对于类很有用,它对变量没有太大的作用。为什么变量名应该在PHP编码标准中被驼峰化?

假设您必须将某些变量映射到您的数据库列或表单元素。 MySQL不区分大小写(我知道),也不是html,因此$ data ['userId']与$ data ['userid']几乎相同。象Doctrine这样的ORM实际上忽略了camelCasing的列,并且只是以小写的方式获取它们(或者它只是像mysql一样返回它们)。没有人愿意处理可能或者不可能看起来像$ data ['productQuantity']或$ data ['productquantity']的数据,这取决于它的位置。另一方面,$ data ['product_quantity']的含义不明确。

那么什么是背后的当前变量编码标准的命名方案?什么阻止PHP修改这个标准,说所有的变量都应该用小写字母分隔,并用下划线分开(因为我们知道类名应该以大写字母开头)。

编辑:

请注意,我不要求什么是标准的目的。我知道他们一般意味着要解决什么问题。我在问为什么PHP中的名称标准是变量。即我理解类命名方案背后的原因以及采用它的好处(使您的磁带库与许多自动加载器兼容,等等)。但我不明白为什么骆驼变形变量名称。有特别的原因吗?我能否摆脱这种后果?

回答

1

PHP受到Java的强烈影响,所以很自然地从那里拿起命名方案。我很确定,如果PHP今天被发明,人们会使用不同的命名方案。现在它已经非常标准了,所以改变它并不是一个真正的选择。

不过,这是一个事实上的标准。 PHP语言不附带任何命名指南。它主要由各种框架驱动。 (最值得注意的是,PEAR和Zend框架)

0

这只是一个约定...喜欢编程社会习惯

2

那么什么是编码标准 的 变量命名方案背后的原因?

这使得代码:

  • 一致
  • 易于理解别人乍一看变量是什么
  • 所有开发人员都遵循相同的原则,使生活变得更加轻松。
+0

这是大多数标准背后的基本原理。我要求的变量名称具体命名方案背后的基本原理。我的第二段解释了另一种使用所有小写字母和下划线作为变量名的命名方案与常见的数据库命名方案(即userId vs user_id)更加兼容。拥有这个特定方案并且不采用我提到的方案的一个很好的理由是什么? – 2010-02-18 08:16:07

+0

@ michael:就我而言,我不浪费时间研究这些事情,我不能改变,不会让我受益,但我仍然必须与他们一起:( – Sarfraz 2010-02-18 08:25:13

相关问题