2010-06-16 2 views
4

변수가 항상 문자열이 있다고 가정 해 봅시다.PHP에서 == 및 === 연산자

if($myVar === "teststring") 

참고 : 내 질문 === (indentity) 또는 ==를 사용하여, 최고의/더 빨리

그래서 $myVar 항상 문자열이어야합니다 (평등

지금 아래 코드를 가지고)?

+0

$ myVar의 유형을 신경 쓰지 않으므로이 경우 ==를 사용합니다. 나는 속도가 거의 같다고 확신한다. (그것은 메가 루프에서도 중요하지 않다. – AlexV

+0

'=='를 사용하기로 결정했다면, 조건을 바꾸면 (''teststring "== $ myVar') 가능한 오탈자를 잡는 데 도움이됩니다 (두 개의 등호 중 하나를 놓치면' $ myVar' 그리고 조건이 있다면 항상 true!). – MartinodF

답변

6

PHP는 비교를 평가하기 위해 유형 저그 (Juggle)을 사용할 필요가 없으므로 신원 테스트는 항상 빠릅니다. 그러나, 속도 차이가 나노초의 영역에 있고 완전히 무시할 수 있다고 말하고 싶습니다.

관련 독서 :

+3

+1. 그냥 호기심에서, 나는'=='문과'==='를 루프에 넣어서 천만 번 실행되도록했습니다. 두 사람 사이에 실제적인 차이는 없었습니다. 테스트를 여러 번 반복하면'=='이 때로는 더 빠르거나 때로는 느려지지만 실제로는 약 1ms의 차이가 있습니다 ... – nico

+1

@nico'=='이 타입 변환을 트리거했는지에 따라 달라집니다. 같은 유형의 변수를 비교하는 경우 (또는 평등 연산자가 변환을 시도하지 않는 경우)를 테스트했을 수 있습니다. – Artefacto

0

일반적으로 내가 코드를 작성할 때 == over ===를 사용하지만 ID를 사용하는 것이 더 정확하고 약간 더 빠릅니다 (차이는 최소 임).

두 가지의 차이점은 필요한 것이 무엇이든 관계가 없습니다.

+2

IMHO'=='는 타입 저글링이 문장 (특히 PHP에서)에 어떻게 영향을 주는지 더 많은 인간적인 노력이 필요하기 때문에 피할 수 있어야합니다. '==='는 정확히 일치하거나 그렇지 않습니다. –

+0

나는 그것에 동의하고, 더 많이 본 후에 - 나는 나의 진술을 수정한다. –

2

===은 약간 빠른 수 있지만 더 중요한 것은, 그것은 당신이하지 않아도 $myVar 문자열을 것이라고 시행 다른 유형의 가능한 효과에 대해 걱정할 필요가 있습니다.