如何写一个真如if()

时间:2010-09-13 17:12:16

标签: php if-statement code-formatting

我总是写下这样的陈述:

if (...) {
    /* do something */
}

当我在stackoverflow上创建主题时,有时人们会将此代码更改为:

if (...)
{
    /* do something */
}

所以第一个{转到新行。

这是否有意义,真正的方法是什么?

6 个答案:

答案 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)

它不需要换行,但有些人认为最好这样做。这只是一个可读性问题,因此应该根据您或您正在使用的团队进行定制。 没有真正的方法