代码之家  ›  专栏  ›  技术社区  ›  animuson Hemanshu

“&=”和“=&”运算符做什么?

  •  19
  • animuson Hemanshu  · 技术社区  · 14 年前

    找到这个问题的答案比我想象的要困难得多。因为我不知道你怎么称呼它,所以很难运行Google搜索,因为它会忽略这些字符。

    我试着浏览网页 PHP Assignment Operators

    我只知道它设置了一个变量,它就是“=”部分,所以我真的需要知道“&是什么”部分是做。

    请不要说显而易见的话;我需要有人解释他们到底做了什么。我知道其中一个是“按位”,但这对我来说没有任何意义。

    4 回复  |  直到 9 年前
        1
  •  36
  •   Community SushiHangover    7 年前

    =& assigns by reference

    $a = 1;
    $b =& $a;
    $a++;
    echo $b; // 2
    

    参考PHP手册:

    PHP中的引用是通过不同的名称访问相同变量内容的一种方法。


    &= bitwise AND 分配

    $a = 1;
    $a &= 1; // is the same as
    $a = $a & 1;
    echo $a; // 1
    

    Wikipedia on Bitwise AND:

    按位AND采用两个长度相等的二进制表示,并对每对相应的位执行逻辑“与”运算。在每对中,如果第一位是1,第二位是1,则结果是1。否则,结果为0。例如:

        0101
    AND 0011
      = 0001
    

    编辑: Bitwise Operations in PHP

        2
  •  10
  •   Felix Kling    14 年前

    =& assigning by reference .

    它不是通过值而是通过引用来指定变量。

    例子:

    $a = 'foo';
    $b =& $a;
    
    $b = 'bar';
    
    echo $a;
    

    印刷品 bar 因为 $b 引用 $a 因此改变了 十亿美元 一美元 .


    &= bitwise AND

    例子:

    $a = 4 // binary representation: 100
    $b = 1 // binary representation: 001
    

    $a &= $b 只是 $a = $a & $b 意思是:抓住每一点,完成任务 AND operation ,即:

    0 & 1 = 0
    1 & 0 = 0
    1 & 1 = 1
    0 & 0 = 0
    

         1 0 0 
    AND  0 0 1
         -----
         0 0 0
    
    => $a = 0 // bit representation 0 ;)
    
        3
  •  2
  •   Peter Mortensen Leslie    9 年前
    &=
    

    是按位“AND”赋值运算符。它对变量执行“AND”并存储结果(更多信息在 Bitwise Operators 更一般的信息在 Bitwise Operations in C ).

    这个

    =&
    

    运算符是一种引用赋值,它使变量不指向另一个变量或常量的值,而是指向该内存位置(更多信息在 What References Are ).

        4
  •  1
  •   Dolph    14 年前

    '&='是位赋值运算符:

    $var = false;
    $var &= foo(); // will call foo()
    $var = false & foo(); // will call foo()
    $var = $var && foo(); // will not call foo()
    

    '=&'返回引用:

    $a = $b; //$a points to $b
    $a =& $b; //$a does NOT point to $b... both point to the same thing.