if(true)
if($i == 2)
callMethodOne();
elseif($i == 3)
callMethodTwo();
else
{
callMethods1();
callMethods2();
//so on
}
else
callMethodFiftyFive();
不好吗?
答案 0 :(得分:2)
我不会说它特别糟糕,特别是对于一个小的,孤立的脚本。但是当你开始使用更多的代码,更复杂的代码,更重要的是更多的程序员时,这样的事情会成为问题。
我建议你选择一个编码标准并尝试坚持下去。例如,PEAR已发布其编码标准:Manual :: Coding Standards
就个人而言,我至少在第一个区块周围包括括号:
if(true)
{ // Added this
if($i == 2)
callMethodOne();
elseif($i == 3)
callMethodTwo();
else
{
callMethods1();
callMethods2();
//so on
}
} // Added this
else
callMethodFiftyFive();
我只省略了单行的括号,如下所示:
if (foo)
bar();
永远不要复杂,比如:
if (foo)
if (baz)
spam();
else
eggs();
因为很容易忘记你已经省略了括号,并在第一个“块”内添加了一些东西:
if (foo)
NewCall();
if (baz) // WOAH! this now happens regardless of "if (foo)"!
spam();
else
eggs();
答案 1 :(得分:1)
不,不是真的。省略括号时要小心,否则当你向if
和elseif
添加更多行时会遇到麻烦。
与往常一样,如果您在已经具有既定风格的环境中工作,请首先遵循该风格。有些群体希望callMethodOne()
与if
位于同一行,而其他群体可能更喜欢您始终使用括号。只要保持一致,你应该没事。
答案 2 :(得分:1)
如果要将调试语句放在其中一个块中,可能会很烦人。或者拿一个。或者添加另一个函数调用。或者再次删除它。除非你是关于避免使用单行模块的OCD,否则它真的不值得这么麻烦。
答案 3 :(得分:1)
我避免使用 - 我唯一一次不使用大括号就是如果我有一个if
和一条短then
行的结果:
if (someThing) doSomethingElse();
否则我总是使用'em。
答案 4 :(得分:1)
计算机的合法性并不总是人类最容易理解的代码。
这种风格可能会导致错误。
考虑一下无支撑会发生什么 - 如果没有其他(或类似地,一个无支撑的其他),加上一个单一的声明。控制流程不是缩进所暗示的。
if(true)
callMyOtherMethod()
if($i == 2)
callMethodOne();
elseif($i == 3)
callMethodTwo();
else
{
callMethods1();
callMethods2();
//so on
}
答案 5 :(得分:1)
我强烈建议在每个if / else语句中使用括号,无论它有多少行。它使它更具可读性。另外,如果您碰巧在if
添加了额外的一行,那么您确定它会在应有的时候运行。
例如,这个例子会做什么?
if(true)
callAnotherMethod(); // Uh oh
if($i == 2)
callMethodOne();
callAnotherMethodAgain(); // What's gonna happen
elseif($i == 3)
callMethodTwo();
else
{
callMethods1();
callMethods2();
//so on
}
else
callMethodFiftyFive();
callThisOtherMethod(); // Oh no
使用括号,它是可读的,并且您100%确定正在进行的操作。
if(true)
{
callAnotherMethod(); // :-)
if($i == 2)
{
callMethodOne();
callAnotherMethodAgain(); // :-)
}
elseif($i == 3)
{
callMethodTwo();
}
else
{
callMethods1();
callMethods2();
//so on
}
}
else
{
callMethodFiftyFive();
callThisOtherMethod(); // :-)
}
答案 6 :(得分:0)
此代码唯一的问题是清晰度。假设你在每个if中都有大量的语句然后然后跟踪代码或干运行它会对你越来越难,因为你离开头更远