我总是写下这样的陈述:
if (...) {
/* do something */
}
当我在stackoverflow上创建主题时,有时人们会将此代码更改为:
if (...)
{
/* do something */
}
所以第一个{
转到新行。
这是否有意义,真正的方法是什么?
答案 0 :(得分:7)
我建议阅读Code Complete。他深入研究了这个主题(几乎整篇关于它的内容),并给出了我认为是#1的令人信服的论据。
他实际上说没有明确使用第二个,因为它没有通过黑盒测试:
if (blah)
{
//Foo
}
当黑盒子变成:
XXXXXXXXX
X
XXX
X
所以开口支架看起来像是块的开始,而不是(它只是分隔符)。
相反,他建议使用第一个选项(在同一行上打开大括号),或者:
if (blah)
{
//Foo
}
因为它通过了黑盒测试:
XXXXXXXXXX
X
XXXXXXX
X
注意:我不记得关闭分隔符是否应该在块内...我没有方便的副本,所以它可能是:
if (blah)
{
//Foo
}
然而,这一切都归结为一致性。为了使您的代码可读,您需要在格式化方式上保持一致。选择一种方法,然后坚持下去。不要从文件切换到文件或例程到例程。只要你保持一致并实际格式化,就不要担心......
答案 1 :(得分:4)
空格在PHP中无关紧要,因此请使用您更喜欢的任何样式(或者您正在处理的项目或您工作的公司用于保持一致性的任何样式)。从PHP解释器的角度来看,这两种形式完全相同。
答案 2 :(得分:2)
这是程序员争论多年的事情。这完全取决于您的个人风格和偏好。两种方式都是“正确的PHP”。
答案 3 :(得分:2)
要么。 “正确”的完全取决于您的编码风格。我建议您按照您喜欢的方式进行操作,除非您正在处理现有代码,在这种情况下您应遵循该代码的约定。
答案 4 :(得分:2)
这通常是编码员的偏好。有些项目有编码标准,例如Zend Framework或公司将以某种方式要求它。如果您正在为其他人或您的公司编码,请询问标准。如果您正在使用Zend Framework等开源项目,那么您将阅读有关如何格式化代码的文档。如果您是为自己做的,请选择您喜欢的方式并坚持下去/保持一致。
答案 5 :(得分:1)
它不需要换行,但有些人认为最好这样做。这只是一个可读性问题,因此应该根据您或您正在使用的团队进行定制。 没有真正的方法。