如何在不重复代码的情况下基于变量更改php if语句?

时间:2018-11-14 14:57:33

标签: php if-statement

比方说我有这个:

if( $row['date'] == "$date" && $row['datestatus'] !== "NOT STARTED" ) {
    //big chunck of code
}

这意味着显示除未启动之外的任何状态。现在,如果变量为1,我想显示所有状态。假设我有一个这样的变量:

$var = 0;

该变量可以为1或0,具体取决于用户的互动情况。如果为0,则按照上述if语句的方式工作。如果为1,则显示所有状态的记录。基本上是这样的:

if( $row['date'] == "$date" ) {
    //big chunck of code
}

我不想做的事情是这样的:

if ($var==0) {
    if( $row['date'] == "$date" && $row['datestatus'] !== "NOT STARTED" ) {
        //big chunck of code
    }
} else {
    if( $row['date'] == "$date" ) {
        //same big chunck of code
    }
}

我试图做这样的事情,但是没有用:

if ($var==0) {
    $phpextended = '&& $row["datestatus"] !== "NOT STARTED"';
} else {
    $phpextended = '';
}
if( $row['date'] == "$date" $phpextended ) {
    //big chunck of code
}

可能重复的问答对您没有帮助。有用的是此页面上的答案。

2 个答案:

答案 0 :(得分:2)

您需要和OR声明:

if( $row['date'] === $date 
    && 
    ($row['datestatus'] !== "NOT STARTED" || $var === 1)
) {
    //big chunck of code
}

答案 1 :(得分:1)

if($var==0 && $row['date'] == "$date" && $row['datestatus'] !== "NOT STARTED" || 
   $var==1 && $row['date'] == "$date"){
      //big chunck of code
}