使用插入符号调用的PHP语法是什么?它做什么?



我在一个代码库中遇到了这种语法,我找不到更多的信息。它看起来像插入符号操作符(异或操作符),但因为下面的语句是在满足特定条件时执行的,所以我认为它不是。

$this->m_flags ^= $flag;

因为我不知道它叫什么,所以我也不能正确地搜索它。

更新:因为克莱图斯的回答:那么下面的行在功能上是相等的吗?

$a = $a ^ $b; 
$a ^= $b; // the shorthand for the line above

这是位异或等号。它基本上是切换一个标志,因为我得到$flag是2的幂。举个例子:

$a = 5; // binary 0101
$b = 4; // binary 0100
$a ^= $b; // now 1, binary 0001

所以第三位被翻转了。再次:

$a ^= $b; // now 5, binary 0101

按位异或和赋值操作符http://php.net/manual/en/language.operators.bitwise.php

最新更新