PHP中变量的主要命名约定是什么:驼峰或下划线?[关闭]


51

人们的共识似乎是,应该遵循他们所开发平台的惯例。看到:

下划线还是驼峰式?

命名约定:camelCase与underscore_case?

然而,PHP似乎没有遵循任何的约定内部(没有惊喜出现),甚至方法和功能(例如mysqli::set_local_infile_defaultPDOStatement::debugDumpParams); 但是,下划线似乎在函数名称中占主导地位。

但是,我找不到的是:PHP中变量的主要命名约定是什么?


选择一个并坚持下去。只要您坚持选择哪一个,都没有关系。与制表符和空格相同。
yannis

2
我强烈同意相关讨论中普遍存在的观点:应遵循公约。这就是为什么我将问题的范围限制为PHP。不过,我开始怀疑是否有在PHP中的主导命名约定。
sbichenko

5
并非如此,命名约定是使PHP如此出色地工作的另一个小矛盾之处。PSR是我认为值得遵循的一项工作,但是...完全取决于您。相关问题:是否有PHP的标准样式指南?为什么Bootstrap 3将camelCase更改为破折号-更具可读性吗?
yannis


Answers:


50

PHP中没有明确的命名约定,它们在框架方面有所不同:

因此:使用您的框架使用的任何内容或创建自己的命名约定。

至少对于函数名和类方法,要考虑一件事,但是某些框架会丢弃它:在这种情况下PHP不区分大小写,因此aTonalFunction()atonalFunction()它们都是对同一函数的调用。


1
没有什么与您的笨拙命名论点相抵触的,但这绝对不是惯例。所有现代框架和库(例如Zend Framework 2Doctrine 2Symfony 2)都使用camelCase作为方法名称。
鲁道夫·哥特斯海姆

@RudolphGottesheim好点。我已经相应地编辑了答案。
Residuum

1
有趣。我来到这里是因为我发现wordpress的编码约定很笨拙。现在我至少看到他们的意思是笨拙的
Kirby

14

作为使用PHP进行编码已有十多年的历史,我可以看到从下划线到camelCase的转变。特别是当Zend和Symfony等较大的框架不禁止下划线时,它们也会基于camelCase构建,但是所有核心功能都是camelCase。

您可以在旧系统中看到很多下划线解决方案,例如旧的Typo3分支(Typo3 Neo也更改为camelCase)。

但是,绝对没有严格的规则可供所有人使用,这就是我过去几年所看到的。


1

这取决于程序员/开发人员以及他们正在使用的框架或开源。例如,在Yii框架中,建议使用驼峰式大小写,而在Codeigniter框架中,大多数人会在变量名后加上下划线。可以肯定的一件事是,无论使用哪种框架,变量名都必须是可理解和可识别的。


0

就个人而言,这可以任意选择。有些程序员喜欢使用CamelCase的编写方式,另一些程序员则喜欢使用下划线……因此提出这样的问题是无关紧要的,因为每个程序员都会有自己的不同见解……就我个人而言,我习惯于视情况而定。 ..

情况一:

您已经加入了一个编程团队并加入了一个正在进行的项目,您会注意到其中列出了一个示例变量:

$theString = "This is a camelcase example";

但是您具有以下首选样式:

$the_string = "This is not a camelcase example"; 

在这种情况下,最好保持驼峰式。

情况二:

您希望单独开始一个项目。

在这种情况下...取决于您的舒适程度,请记住以下方面的不良做法:

$theString = "This is a sample String"; 
$the_string = "This is another sample string within the same project"; 

这很容易导致意外的输出。请记住这一点。


9
仅供参考,您所指的是PascalCase-camelCase以小写字母开头。
John Weisz 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.