¿La condición después de && siempre se evalúa

tengo estoif declaración que prueba las 2 condiciones a continuación. El segundo es una función.goodToGo() así que quiero llamarlo a menos que la primera condición ya sea cierta

$value = 2239;

if ($value < 2000 && goodToGo($value)){
   //do stuff
}

function goodToGo($value){
   $ret = //some processing of the value
   return $ret; 
}

Mi pregunta es sobre las condiciones 2 si$value < 2000 && goodToGo($value). ¿Ambos son evaluados o el segundo solo se evalúa cuando el primero es verdadero?

En otras palabras, ¿son iguales los siguientes 2 bloques?

if($value < 2000 && goodToGo($value)) {
   //stuff to do
}

if($value < 2000) {
    if (goodToGo($value)){
       //stuff to do
    }
}

Respuestas a la pregunta(6)

Su respuesta a la pregunta