我試圖瞭解設置error_reporting值時使用「^」字符和「〜」字符的區別。例如,我已在我的PHP腳本如下:PHP錯誤報告 - 使用「^」字符和「〜」字符
if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
error_reporting(E_ALL & ~ E_DEPRECATED & ~ E_USER_DEPRECATED & ~ E_NOTICE);
} else {
error_reporting(E_ALL^E_NOTICE);
}
我在閱讀手冊頁:
http://php.net/manual/en/function.error-reporting.php
,但我現在比以往任何時候都更加困惑。方法是:
error_reporting(E_ALL & ~ E_DEPRECATED & ~ E_USER_DEPRECATED & ~ E_NOTICE);
一樣:
error_reporting(E_ALL^E_DEPRECATED^E_USER_DEPRECATED^E_NOTICE);
'^'不是'或',它是'xor'。 – DCoder
是的,我剛剛意識到這一點,並修復。謝謝 – kennypu
謝謝 - 所以我正確的結論是(E_ALL&〜E_DEPRECATED&〜E_USER_DEPRECATED&〜E_NOTICE)產生與(E_ALL^E_DEPRECATED^E_USER_DEPRECATED^E_NOTICE)相同的結果? – user982124