8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

3 个不同的平等

shahkalpesh 2月前

59 0

=、== 和 === 之间有什么区别?我认为使用一个等号来声明一个变量,而两个等号用于比较条件,最后三个等号用于比较...

、 和 有 = , == 什么区别 ===

我认为使用一个等号来声明一个变量,而两个等号用于比较条件,最后三个等号用于比较声明变量的值。

帖子版权声明 1、本帖标题:3 个不同的平等
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由shahkalpesh在本站《authentication》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 对于高级 PHP 用户,了解 == 和 === 之间的区别,并问自己“当我确定两个操作数是相同类型时,使用 == 还是使用 === 进行比较更快?”,请查看下面的基准脚本。

  • (更新):我在编辑中添加了 javascript 标签,因为有不少问题都是人们使用

  • rsp 2月前 0 只看Ta
    引用 4

    我继续删除了 JavaScript 标签:这里的所有答案都只与 PHP 有关(除了最新的,它非常弱),那里

  • 您有 = 赋值 运算符、 , == “相等”比较运算符 === 相同” 比较运算符 .

    $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)
    

    有关 == === 以及使用情况的更多信息,请查看 文档 .

  • 当我比较两个相同的日期时间时,结果为假,为什么?例如:sandbox.onlinephpfunctions.com/code/…

  • @stloc,=== 对象会告诉您它们是否是同一个对象,而不是它们是否具有相同的内容。

    • = 是赋值运算符
    • == 是比较运算符(检查两个变量是否具有相等的值)
    • === 是相同的比较运算符(检查两个变量是否具有相等的值并且属于相同类型)。
  • Azam 2月前 0 只看Ta
    引用 9

    = 赋值运算符

    == 检查两个变量是否具有相同的值

    === 检查两个变量是否具有相同的值以及它们的类型是否相同

  • 还了解 != 和 !== 这两个比较运算符的“非”版本。有些语言使用 := 作为赋值,就是为了避免这种混淆。

  • 引用 11

    = 运算符将值分配给变量 $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 类型。所以这里输出

  • 引用 12

    == 之间的区别, === 当我确定两个操作数是同一类型时, == 或与 === 进行比较哪个更快

    简短而普遍的回答是: There is no performance gain in using === in this cases, so you should probably use == .

    对于那些有兴趣自己进行基准测试的人,你可以使用我专门编写的以下代码并尝试不同的 $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";
    ?>
    

    注意:只有当每次“第一次尝试”与其“第二次尝试”非常接近时,比较才有效。如果它们明显不同,则意味着处理器在执行比较时正忙于执行其他操作,因此结果不可靠,应再次运行基准测试。

  • 引用 13

    像这样的微基准测试并不是很可靠。您也不太可能担心 == 或 === 是导致性能问题的原因。在我看来:除非您明确希望对比较宽松 (==),否则最好严格 (===)。奇怪的边缘情况数量,即 \'5 不是数字\' == 5 可能会导致古怪的错误。 === 永远不会遇到这个问题。

  • 我的测试是告诉程序员,如果他们出于性能原因而选择 ===,那他们就错了。因此,程序员可以根据逻辑原因自由选择 === 或 ==,但不能出于性能原因:在不同情况下,可以选择其中一个,并且完全不能考虑性能。

返回
作者最近主题: