Он не "ведет себя случайным образом", он делает то, что вам говорят:
if ($a) {
// do A
}
if ($b) {
// do B
}
if ($c) {
// do C
}
Все три ifs
не зависят друг от друга. Если $a
, $b
и $c
- все true
, он будет выполнять операции A, B и C. Если только $a
и $c
- истина, он будет выполнять операции A и C и т.д. на.
Если вы ищете более «взаимозависимые» условия, используйте if..else
или вложенный ifs
:
if ($a) {
// do A and nothing else
} else if ($b) {
// do B and nothing else (if $a was false)
} else if ($c) {
// do C and nothing else (if $a and $b were false)
} else {
// do D and nothing else (if $a, $b and $c were false)
}
В приведенном выше примере будет выполнено только одно действие.
if ($a) {
// do A and stop
} else {
// $a was false
if ($b) {
// do B
}
if ($c) {
// do C
}
}
В вышеприведенном случае и B, и C могут быть выполнены, но только если $a
ложно.
Кстати, это довольно универсально и совсем не специфично для PHP.