IT story

3 개의 다른 평등

hot-time 2020. 6. 14. 09:52
반응형

3 개의 다른 평등


차이점은 무엇이며 =, ==그리고는 ===?

하나의 등호를 사용하는 것은 변수를 선언하는 것이고 두 개의 등호는 비교 조건을위한 것이고 마지막으로 세 개의 등호는 선언 된 변수의 값을 비교하는 것입니다.


당신은이 할당 연산자 , '동일'비교 연산자'동일한'비교 연산자를 .======

$a = $b     Assign      Sets $a to be equal to $b.
$a == $b    Equal       TRUE if $a is equal to $b.
$a === $b   Identical   TRUE if $a is equal to $b, and they are of the same type. (introduced in PHP 4)

==의 필요성 ===과 상황 에 대한 자세한 내용 은 docs를 참조하십시오 .


  • = 할당 연산자입니다
  • == 비교 연산자 (두 변수가 동일한 값을 갖는지 확인)
  • === 동일한 비교 연산자입니다 (두 변수의 값이 같고 유형이 같은지 확인).

= 할당 연산자

== 두 변수의 값이 같은지 확인

=== 두 변수의 값이 같은지 확인하고 유형이 같은지 확인합니다


= 연산자는 값을 변수 $ six = 6에 할당합니다. 값 6은 변수 $ six에 지정됩니다

== 연산자는 두 변수의 값이 같고 대부분 if 문과 같은 조건에서 사용되는지 확인합니다.

$a = 2;
$b = 2;
if ($a == $b) { 
    echo both variables have the same value; 
}

=== ==와 유사한 연산자 (값이 같은지 확인)와 동일한 데이터 유형이 모두 있는지 확인

$a = 2;
$b = "2";
if ($a === $b) {
    echo "both variable have same value and of same data type";
} else {
    echo 'both variable is either not equal or not of same data type';
}

// 여기서 $ a는 int 유형이고 $ b는 string 유형입니다. 여기에 출력


고급 PHP 사용자의 경우 차이점 ==자신의 차이점을 알고 ===" 두 피연산자가 동일한 유형인지 확신 할 때 ==또는 비교하는 것이 더 ===빠릅니까?"

짧고 일반적인 대답은 다음과 같습니다. 이 경우에는 성능이 향상되지 ===않으므로을 사용해야 ==합니다.

그것은 스스로를 벤치마킹에 관심이있는 사람의 경우, 당신은 내가 임시 쓴 다음 코드를 사용하여 서로 다른 값을 시도 할 수 있습니다 $a$b:

<?php
    // CONFIGURATION
    $cycles = 1000000;
    $a = 'random string 1';
    $b = 'random string 2';

    // FUNCTIONS
    function compare_two_equals($a, $b) {
        if ($a == $b) {
            return TRUE;
        } else {
            return FALSE;
        }
    }

    function compare_three_equals($a, $b) {
        if ($a === $b) {
            return TRUE;
        } else {
            return FALSE;
        }
    }

    // EXECUTION
    $time = microtime(TRUE);
    for ($count_a = 0; $count_a < $cycles; $count_a++) {
        compare_two_equals($a, $b);
    }
    $time_two_a = microtime(TRUE) - $time;
    $time = microtime(TRUE);
    for ($count_a = 0; $count_a < $cycles; $count_a++) {
        compare_three_equals($a, $b);
    }
    $time_three_a = microtime(TRUE) - $time;
    $time = microtime(TRUE);
    for ($count_a = 0; $count_a < $cycles; $count_a++) {
        compare_two_equals($a, $b);
    }
    $time_two_b = microtime(TRUE) - $time;
    $time = microtime(TRUE);
    for ($count_a = 0; $count_a < $cycles; $count_a++) {
        compare_three_equals($a, $b);
    }
    $time_three_b = microtime(TRUE) - $time;
    $time = microtime(TRUE);

    // RESULTS PRINTING
    print "<br />\nCOMPARE == (FIRST TRY): " . number_format($time_two_a, 3) . " seconds";
    print "<br />\nCOMPARE == (SECOND TRY): " . number_format($time_two_b, 3) . " seconds";
    print "<br />\nCOMPARE === (FIRST TRY): " . number_format($time_three_a, 3) . " seconds";
    print "<br />\nCOMPARE === (SECOND TRY): " . number_format($time_three_b, 3) . " seconds";
?>

NOTE: The comparison is valid only when each "FIRST TRY" is very close to its "SECOND TRY". If they are significantly different, it means that the processor was busy doing something else while executing the comparisons and so the results are unreliable and the benchmark should be run again.

참고URL : https://stackoverflow.com/questions/2063480/the-3-different-equals

반응형