OR 연산자 또는 유사 연산자를 사용하는 IF 문의 경우, 진위가 확인 된 후 PHP는 나머지 부분을 계속 검사하거나 중지합니까? ? 예를 들면.IF 문에서 진위를 확인한 후에도 조건 확인이 계속됩니까? (PHP)
if(true == true OR a_checking_function())
둘 다 확인했거나 PHP가 하나만 선택 했습니까?
OR 연산자 또는 유사 연산자를 사용하는 IF 문의 경우, 진위가 확인 된 후 PHP는 나머지 부분을 계속 검사하거나 중지합니까? ? 예를 들면.IF 문에서 진위를 확인한 후에도 조건 확인이 계속됩니까? (PHP)
if(true == true OR a_checking_function())
둘 다 확인했거나 PHP가 하나만 선택 했습니까?
아니요, 첫 번째 true
이 발견되자 마자 중괄호의 코드로 이동합니다. 'AND'키워드를 사용하면 두 번째 조건을 검사합니다.
연산자/논리 우선 순위를 확인하는 것이 좋습니다. 예를 들어, 다음과 같은 조건에서 어떤 일이 일어날 것?
if($a = $b AND $c = $d AND $e = $f)...
if($a = $b AND $c = $d OR $e = $f)...
if($a = $b OR $c = $d AND $e = $f)...
명확하고 정확한 답. 감사. –
@ StrangeOpossum 독자가 관심을 가질만한 연산자/논리 우선 순위에 대한 링크를 추가했습니다. –
이 테스트에 아주 간단하다 :
<?php
$count = 0;
function testCond($response=false){
global $count;
$count++;
return $response;
}
if(testCond(true) || testCond(false)){
echo "At least one was true.<br>";
}
echo "testCond() was called $count time(s).";
출력 :
At least one was true.
testCond() was called 1 time(s).
http://codepad.viper-7.com/bxOiW2
각 테스트에 대해 함수를 호출하고 함수가 전역 계수 변수를 증가 시키도록하여 함수가 호출 된 횟수를 계산하십시오.
이 것을 _short-circuiting_이라고합니다. – SLaks
아니요. PHP는 첫 번째 TRUE 일치 ('지연 평가'라고도 함) –
까지만 테스트합니다.이 질문을 게시하는 데 걸리는 시간보다 짧은 시간 내에 테스트 할 수 있습니다. –