IF条件使用AND和OR的组合

时间:2014-07-02 08:50:00

标签: php if-statement conditional-statements

我想知道我的条件是否以正确的方式编写(对于第一个陈述)。 (优化,可读性)

if(($nb_post_by_user >= 3 && $nb_post_by_user < 5) || ( $nb_post_by_user >= 3 && ($nb_comm_by_user < 15 || $percent_voted < 25) )){

    // Call function A();

}
else if( ($nb_post_by_user >= 5 && $nb_post_by_user < 10) && ($nb_comm_by_user >= 15 && $nb_comm_by_user < 30) && ($percent_voted >= 25 && $percent_voted < 70) ){

    // Call function B();

}

或者第一个声明是否可以这样写? (第二个陈述将被嵌套)。

if($nb_post_by_user >= 3){

    if($nb_comm_by_user >= 15 || $percent_voted >= 25){

        // Call function B

    }
    else{

        // Call function A

    }

}

2 个答案:

答案 0 :(得分:1)

if(($nb_post_by_user >= 3 && $nb_post_by_user < 5) || ( $nb_post_by_user >= 3 && ($nb_comm_by_user < 15 || $percent_voted < 25) )){
    // Call function A();
} else if( ($nb_post_by_user >= 5 && $nb_post_by_user < 10) && ($nb_comm_by_user >= 15 && $nb_comm_by_user < 30) && ($percent_voted >= 25 && $percent_voted < 70) ){
    // Call function B();
}

Edited one :


if($nb_post_by_user >= 3) {
    if($nb_post_by_user < 5 || $nb_comm_by_user < 15 || $percent_voted < 25) {
        // Call function A();
    } else if($nb_post_by_user < 10 && $nb_comm_by_user >= 15 && $nb_comm_by_user < 30 && $percent_voted >= 25 && $percent_voted < 70) {
        // Call function B();
    }
}

答案 1 :(得分:0)

在我看来,这两个陈述都没有做同样的工作。我提出的最合理的理由是:

如果if语句中写入的条件之一为真,则会执行第一段代码。但在第二段代码中。如果第一个if条件成立,则代码将始终执行,因为存在else语句而不是if else。所以两人都在做不同的工作。

希望它有所帮助:)