这个〜操作符在这里表示什么?

例:

set_error_handler(array($this, 'handleError'), E_ALL & ~E_STRICT & ~E_WARNING & ~E_NOTICE);

这是什么意思?


它是按位不操作符(也称为“补充”)。 这就是~ $a中设置的那些位未在$a设置$a

那么

E_ALL & ~E_STRICT & ~E_WARNING & ~E_NOTICE

是在E_ALL设置的位和在E_STRICTE_WARNINGE_NOTICE未设置的位。 这基本上说,除严格,警告和通知错误之外的所有错误。


它是按位运算符而非运算符。 例如,二进制表示01011110的数字按位否定为10100001 ; 每一个位都翻转到相反的位置。


按位(&,|,〜)和非按位(&&,||,!)操作符之间的区别在于,按位应用于整数中的所有位,而非按位将整数视为单个“真”(非零)或“假”(零)值。

说, $flag_1 = 00000001$flag_2 = 00000010 。 两者对于非按位操作都是“真实的”( $flag_1 && $flag_2是“true”),而$flag_1 & $flag_2的结果将是00000000,而$flag_1 | $flag_2 $flag_1 | $flag_2将是00000011.〜 ~$flag_2将是11111101,当对运行结果进行按位“与”运算时,该位将清除该位(xxxxxx0x)。 $flag_2按位或运算结果将设置该位的位置(xxxxxx1x)。

链接地址: http://www.djcxy.com/p/1819.html

上一篇: What does this ~ operator mean here?

下一篇: The behaviour of the or operator in PHP