Совет по оптимизации логических выражений (в частности в if): если в выражении используются только операторы "и" (&&), то интертпретатор последовательно проверяет значения подвыражений, заключеных между оператором "и". Если какое-то из них возращает false, то далее выражения не проверяются и все выражение возращает false. Например:

$a=2;
$b=3;
if($a == $b && test()) print('ы!');xit;

function test(){
    print('test');
    return true;
}

В даном случае мы не увидим сообщения "test". Потому что первое подвыражение вернуло false, и далее подвыражения не проверялись.

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