В первом случае вы написали $var
вместо $var1
.
Видите, с разрывами строк:
if (
($type==1 AND empty($var) AND empty($var1))
OR
($type==2 AND empty($var1) AND empty($var2) AND empty($var3))
) {}
// ^
Вы бы заметили это, если бы ваш код былне полностью неразборчиво.
В противном случае ваш код выполняет так, как рекламируется :
<?php
$type = 2;
$var = '';
$var1 = '';
$var2 = '';
$var3 = '';
if(($type==1 AND empty($var) AND empty($var1)) OR ($type==2 AND empty($var1) AND empty($var2) AND empty($var3))) {
echo '!';
}
// Output: !
?>
Этот факт делает этот вопрос вообще не подлежащим сомнению.,Пожалуйста, позаботьтесь о своих вопросах в будущем, предоставив реальные тестовые случаи, которые на самом деле воспроизводят проблему, чтобы доказать, что вы не просто совершили какую-то другую ошибку, которую не нам показываете.