error_reporting 値を設定するときの「^」文字と「~」文字の使用の違いを理解しようとしています。たとえば、私の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);