[Php] &&의 조건은 항상 평가됩니까?


Answers

예. 두 블록은 동일합니다. PHP는 대부분의 언어 (모든 언어는 아님)와 마찬가지로 &&|| 대해 단락 회로 평가 를 사용합니다. .

Question

아래의 두 가지 조건을 테스트하는 if 문이 있습니다. 두 번째 함수는 goodToGo() 함수이므로 첫 번째 조건이 이미 참이 아니라면 호출하고 싶습니다.

$value = 2239;

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

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

내 질문은 조건 2 $value < 2000 조건에 대한 것입니다 $value < 2000 && goodToGo($value) . 그들은 둘 다 평가를 받습니까? 아니면 두 번째 평가는 첫 번째 평가가 사실 일 때 평가됩니까?

즉, 다음과 같은 두 개의 블록이 동일합니까?

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

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



기술 언어를 자신의 언어로 항상 핵심어로 작성하십시오. 이와 마찬가지로 말하기 대화에서 말하면 다음과 같습니다 : "배고프면 '&"나는 피자를 먹고 있습니다 "라고 묻는 것은"내가 배가 고프면 다음 나는 피자를 먹고있다 "? 그래서 여기에서 나중의 구절은 내가 배가 고프지 않을 때까지 나는 피자를 먹지 않는다고 말합니다. 그리고 전은 내가 뚱뚱하다는 것을 말하고 피자를 먹고 있습니다. :-)




두 번째 조건은 첫 번째 조건이 참인 경우에만 검사되므로 두 문은 동일합니다.




Links