Как изменить оператор php if на основе переменной без повторения кода? - PullRequest
0 голосов
/ 14 ноября 2018

Допустим, у меня есть это:

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

Это означает показывать любой статус, кроме не запущенного. Теперь я хочу показать все статусы, если переменная равна 1. Допустим, у меня есть переменная, подобная этой:

$var = 0;

Эта переменная может быть 1 или 0 в зависимости от взаимодействия с пользователем. Если это 0, работайте так же, как выше, если утверждение Если это 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 голосов
/ 14 ноября 2018
if($var==0 && $row['date'] == "$date" && $row['datestatus'] !== "NOT STARTED" || 
   $var==1 && $row['date'] == "$date"){
      //big chunck of code
}
0 голосов
/ 14 ноября 2018

Вам нужно и OR заявление:

if( $row['date'] === $date 
    && 
    ($row['datestatus'] !== "NOT STARTED" || $var === 1)
) {
    //big chunck of code
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...