PHP中的嵌套IFs与逻辑运算符。哪一个是好的做法?

PHP中的嵌套IFs与逻辑运算符。哪一个是好的做法?,php,syntax,Php,Syntax,我继承了一些项目,并试图添加一些功能,但我很难阅读它。最烦人的事情之一是嵌套得很深的循环/条件。我有这样的想法: if (con1){ if(con2){ if(con3){ do_something; } } } 我把它改成了 if(con1&&con2&&con3){ do_something; } 我是因为看不到这种方式的一些明显优势而变得愚蠢,还是在编写愚蠢的代码 @编辑:

我继承了一些项目,并试图添加一些功能,但我很难阅读它。最烦人的事情之一是嵌套得很深的循环/条件。我有这样的想法:

if (con1){
    if(con2){
        if(con3){
            do_something;
        }
    }
}
我把它改成了

if(con1&&con2&&con3){
    do_something;
}
我是因为看不到这种方式的一些明显优势而变得愚蠢,还是在编写愚蠢的代码

@编辑: 我知道如果我想要这样的代码

if (con1){
    if(con2){
            do_something;

    }
    do_something_else;
}

第二种方法不起作用,但我只要求在狭窄的情况下,我需要所有条件都为真。

避免使用深度嵌套的if-else语句,因为它们更难阅读并且容易维护错误。如果您只想检查这些条件是否都为真,那么只需使用第二个版本。它更具可读性,能清楚地传达信息。

我个人不会说这两种方法都比另一种“更好”,但它们都有各自的优势。对我来说,这实际上只取决于那些if语句中涉及了多少其他代码。如果实际上有八个不同的州都需要不同的代码,这取决于
con1
con2
con3
的值,那么使用嵌套的ifs可以更容易地将类似的代码分组在一起。但另一方面,如果你只关心单个案例,当
con1&&con2&&con3
时,那么你的后一个例子更合适。

我认为最短的是最好的。因此,如果你只需要所有这些都是真的,那么就选择if(con1&&con2&&con3)。

没有“更好的”。它们是不同的,特别是当以任何有意义的方式与
else if/else
语句一起使用时,并且不能盲目地将一种形式更改为另一种形式。如果它们在语义上是等价的,那么就使用你喜欢的(我发现它会根据未来代码的意图和期望而改变),但是对于真正重要的事情,就不要使用“重构”。