Если вы используете несколько операторов одновременно в одном выражении, то нужно знать в каком порядке они будут выполняться.

Эта таблица показывает операторы по убыванию приоритета (операторы с одним приоритетом выполняются слева на право):

new
[
! ~ ++ -- (int) (float) (string) (array) (object)
@
* / %
+ - .
< >
< <= > >=
&
^
|
&&
||
? :
= += -= *= /= .= %= &= |= ^= <= >=
print
and
xor
or
,

Для изменения порядка выполнения операторов нужно использовать круглые скобки!