Nice programing

PHP에서 "같지 않음"연산자 <>와! =의 차이점

nicepro 2020. 12. 29. 08:26
반응형

PHP에서 "같지 않음"연산자 <>와! =의 차이점


PHP에서 연산자 !=<>연산자 사이에 차이점이 있습니까?

에서 수동 , 그것은 상태 :

$a != $b    Not equal   TRUE if $a is not equal to $b after type juggling.
$a <> $b    Not equal   TRUE if $a is not equal to $b after type juggling.

큰 차이는없는 것 같지만 궁금합니다.


메인 Zend 구현에는 차이가 없습니다. PHP 언어 스캐너Flex 설명 에서 얻을 수 있습니다 .

<ST_IN_SCRIPTING>"!="|"<>" {
    return T_IS_NOT_EQUAL;
}

T_IS_NOT_EQUAL생성 된 토큰은 어디에 있습니까 ? 따라서 Bison 파서<>!=토큰을 구분하지 않고 동일하게 취급합니다.

%nonassoc T_IS_EQUAL T_IS_NOT_EQUAL T_IS_IDENTICAL T_IS_NOT_IDENTICAL
%nonassoc '<' T_IS_SMALLER_OR_EQUAL '>' T_IS_GREATER_OR_EQUAL

수락 된 답변이 지적했듯이 구현 은 동일하지만 문서 에는 미묘한 차이가 있습니다 ...

에 따르면 이 페이지<> 연산자보다 약간 높은 우선 순위를 갖습니다 !=.

이것이 Zend 구현의 버그인지, 문서의 버그인지 아니면 PHP가 우선 순위 규칙을 무시하기로 결정한 경우 중 하나인지 확실하지 않습니다.

업데이트 : 문서가 업데이트되지 않고 어떤 차이가 사이에 더 이상 존재 <>하고 !=.


그들은 동일합니다. 그러나 유형으로 정의 된 정확한 동등성을 테스트하는 !=====연산자 도 있습니다 .


<>더 크거나 작다는 것을 의미합니다. !=같지 않음을 의미합니다. 그들은 기본적으로 같은 것을 의미합니다.


모두가 동일하다고 말했듯이 하나는 C 스타일 / 쉘 언어 분기에서 하나, 과거에 고도로 통합 된 MySQL을 포함하여 다른 하나에서 하나입니다.

<>!=같지 않음에 대한 적절한 PHP 스타일 인 동의어 인 구문 설탕으로 간주되어야합니다 .

트리플 문자 식별 기능에 의해 더욱 강조됩니다 !==.


<>!=둘 다 T_IS_NOT_EQUAL토큰 으로 구문 분석되므로 연산자 와 정확히 동일 합니다 .

그리고 그것들은 같은 우선 순위를 가지고 있습니다 .

참조 URL : https://stackoverflow.com/questions/4294579/difference-between-not-equal-operators-and-in-php

반응형