수수께끼 같은 연산자!정보

6138 단어 PHP

개시하다

PHP 코드를 읽고 수수께끼 같은 비교산자==!를 발견해서 조사해봤어요.
일반 부정의 비교시!=or!==
  • 원래 이런 연산자가 없었어
  • 하지만 틀리지 않는 수수께끼
  • 조사 1(정수 비교)


    나는 몇 가지 모델을 조사했다.
    샘플 코드는 다음과 같습니다.
    not_equal1.php
    <?php
    if(1 === 1){
        echo("1 === 1はtrueです\n");
    } else {
        echo("1 === 1はfalseです\n");
    }
    
    if(1 !== 1){
        echo("1 !== 1はtrueです\n");
    } else {
        echo("1 !== 1はfalseです\n");
    }
    
    // 問題の比較演算子
    if(1 ==! 1){
        echo("1 ==! 1はtrueです\n");
    } else {
        echo("1 ==! 1はfalseです\n");
    }
    
    결실
    1 === 1はtrueです
    1 !== 1はfalseです
    1 ==! 1はfalseです
    
    틀리지 않아요. 결과는 부정 연산자와 똑같아요. 이상해요.

    조사 2(bool 값 비교)


    갑자기 신경 쓰여서 bool 값으로 비교해 봤어요.
    not_equal2.php
    <?php
    if(true ==! false){
        echo("true ==! falseはtrueです\n");
    } else {
        echo("true ==! falseはfalseです\n");
    }
    
    // 試しにイコールの数を増やしてみる
    if(true ===! false){
        echo("true ===! falseはtrueです\n");
    } else {
        echo("true ===! falseはfalseです\n");
    }
    
    // これはエラーになる
    //if(true ====! false){
    //    echo("true ===! falseはtrueです\n");
    //} else {
    //    echo("true ===! falseはfalseです\n");
    //}
    
    결실
    true ==! falseはtrueです
    true ===! falseはtrueです
    
    수수께끼 같은 연산자===!가 성립되었다.
    그러나 ====!는 성립되지 않았다.

    결론


    그러니까 그걸 깨달았다는 거야.
    not_equal3.php
    <?php
    // つまりこういうこと
    if(true == !false){
        echo("true === !falseはtrueです\n");
    } else {
        echo("true === !falseはfalseです\n");
    }
    
    if(true === !false){
        echo("true === !falseはtrueです\n");
    } else {
        echo("true === !falseはfalseです\n");
    }
    
    결실
    true === !falseはtrueです
    true === !falseはtrueです
    
    ==!==의 비교 연산을 하고 뒤의 요소를 !로 부정한다는 뜻을 나타낸다.===!===의 비교에서 !에서 뒤를 부정했다.
    따라서====!는 잘못된 것이다==== 연산자가 없기 때문이다)
    그렇군요. 잘 나오네요.

    좋은 웹페이지 즐겨찾기