例:
set_error_handler(array($this, 'handleError'), E_ALL & ~E_STRICT & ~E_WARNING & ~E_NOTICE);
Run Code Online (Sandbox Code Playgroud)
这意味着什么?
jas*_*son 22
它是按位非运算符(也称为"补码").这是设置的位~ $a是未设置的位$a.
那么
E_ALL & ~E_STRICT & ~E_WARNING & ~E_NOTICE
Run Code Online (Sandbox Code Playgroud)
是设置的位E_ALL和未设置的位E_STRICT,E_WARNING和E_NOTICE.这基本上表示除严格,警告和通知错误之外的所有错误.
按位(&,|,〜)和非按位(&&,||,!)运算符之间的区别在于,按位应用于整数中的所有位,而非按位则将整数视为单个"true"(非零)或"假"(零)值.
说,$flag_1 = 00000001和$flag_2 = 00000010.无论是"真"非位运算,($flag_1 && $flag_2是"真"),而结果$flag_1 & $flag_2将是00000000和的结果$flag_1 | $flag_2会是00000011 ~$flag_2是11111101,当其按位与运算的运行结果将清除该位位置(xxxxxx0x).$flag_2按位或运算结果将设置该位位置(xxxxxx1x).