문제

나는이 질문이 정말로 중요하지 않다는 것을 알고있다. 그러나 나는 궁금했다 :

다음 중 가장 잘 사용하는 경우 진술이 가장 빠르고 가장 빠릅니까?

<?php

$variable = true;

if($variable === true)
{
    //Something
}

if($variable)
{
    // Something
}


?>

나는 ===가 부울 가치와 정확히 일치하는 것임을 알고있다. 그러나 실제로 개선이 있습니까?

도움이 되었습니까?

해결책

사용 if ($var === true) 또는 if ($var) 스타일의 문제가 아니라 정확성의 문제입니다. 왜냐하면 if ($var) 와 같다 if ($var == true). 그리고 == 비교는 유형을 확인하지 않습니다. 그래서 1 == true 사실이지만 1 === true 거짓입니다.

다른 팁

속도에 관한 한, 나는 Niels에 동의합니다. 아마도 무시할 수 있습니다.

진술이 가장 적합한 경우 테스트하기 가장 좋은 한, 대답은 아마도 예상 주조와 $ 변수가 가질 수있는 값에 달려있을 것입니다.

$ 변수가 0과 1을 true/false 플래그로 사용하는 경우 ($ variable) 또는 if (! $ variable)이 작동하지만 strpos ()에서 정수 결과 인 경우 문제가 발생합니다 ... 가능하면 0 / 1 대신 실제 부울 값을 사용하는 것이 좋습니다.

... 어쩌면 이것은 명확하게하는 데 도움이 될 것입니다. 다양한 결과를 보려면 $ var의 변형을 언급하십시오.

<?php

$var = true;
$var = 1;

$var = false;
$var = 0;

if ( $var ) {
    echo 'var = true <br />';
}

if ( $var === true ) {
    echo 'var is a boolean and = true';
}

if ( !$var ) {
    echo 'var = false <br />';
}

if ( $var === false ) {
    echo 'var is a boolean and = false';
}

그냥 사실 :

time php -r '$r = true; for($i = 0; $i < 10000000; $i++) { if($r == true) {} }'

time php -r '$r = true; for($i = 0; $i < 10000000; $i++) { if($r) {} }'

두 번째는 첫 번째보다 빠릅니다.

나는 PHP의 기술적 인 것들에 대해 깊이 깊은 것은 아니지만 첫 번째 경우

if($variable === true)

$ 변수는 IF 문이 true가 되려면 True와 정확히 동일한 유형을 가져야합니다. 다시 말해, $ 변수는 True로 해결해야 할뿐만 아니라 부울이어야합니다. 그래서 이것은 2 개의 작업, 가치 검사 및 유형 확인입니다.

두 번째 경우

if($variable)

$ variable은 true로만 해결해야합니다. 따라서 가치 점검 만 발생합니다. 나는 그것이 컴퓨터가 조금 더 적은 시간을 소비한다고 추론한다.

실제로 말하면 : 속도의 차이는 아마도 무시할 수 있습니다.

=== 첫 번째 바늘이 건초 더미에서 위치 0에있을 때 strstr/strist에서 정말 도움이됩니다. === 또는! == 사용하지 않으면 손에 버그가있을 수 있습니다.

$str = "four score and...";
$position = strstr($str,'four');
if($position===FALSE) return FALSE;
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top