Использовать OR внутри, если условие else по обратному порядку порядка в php

Я пытаюсь получить «ОК», если мое условие False, я хочу сохранить то же самое, если иначе заказать в качестве примера, не советуйте перемещать контент «else» в «if» и «if» content в «else»,

<?php //Case 1 Both False //$point = 1001; //more than 100 //$flag = 1; //flag is = 0 //Case 2 First False Second True //$point = 1000; //less than 1000 //$flag = 0; //flag is = 0 //Case 3 First TRUE Second FALSE //$point = 100; //less than 100 //$flag = 1; //flag is = 1 $point = 1001; $flag = 1; ?> <div class="box border"> <div class="box-title"> <?php if($flag == 0 || $point < 1000) { ?> <h4>Not OK</h4> <?php } else { ?> <h4>OK</h4> <?php }?> </div> 

в сценарии выше // Дело 1 работает, но Case 2 и Case 3 оба не работают с оператором OR

Я хочу, чтобы все 3 случая работали одинаково

Solutions Collecting From Web of "Использовать OR внутри, если условие else по обратному порядку порядка в php"

После прочтения ваших комментариев:

Кажется, вы хотите показать некоторый балл (в else-ветке if-then-else), если пользователь имеет равные / более 1000 пунктов или вы переключаете флаг (что в основном означает «всегда показывать точки»).

Обычно вы делаете это в if-ветке:

 if ($flag || $point >= 1000) { echo "OK"; } else { echo "Not OK"; } 

Так как вы хотите, чтобы Not OK было в If-Branch, вам нужно инвертировать условие, так как это означает инвертирование каждой части условия и операторов :

  • $flag становится !$flag
  • $point >= 1000 становится $point < 1000
  • || становится &&

Результат:

 if (!$flag && $point < 1000) { echo "Not OK"; } else { echo "OK"; } 

Записывая это в таблицу истинности:

 flag point result 0 < 1000 Not OK 1 < 1000 OK 0 >=1000 OK 1 >=1000 OK 

Я тестировал этот код, и он работает.

 if(!($flag != 0 || $point >= 1000)){ echo "Not OK"; }else{ echo "OK"; }