php 的按位计算的一点备用

话说php的预定义变量 (只考虑 PHP7情况吧)

E_ALL  是  30719 (111011111111111) 15个错误提示位,

E_STRICT 是 000100000000000 用于补第4位的错误提示

E_NOTICE 是 8 (000000000001000)

E_ALL | E_STRICT ^ E_NOTICE 可以表示为

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1     E_ALL | E_STRICT
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0     E_NOTICE

结果是 111111111110111

E_ALL | E_STRICT & ~E_NOTICE 可以表示为

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1  E_ALL | E_STRICT
1 1 1 1 1 1 1 1 1 1 1 0 1 1 1  ~E_NOTICE

结果是  111111111110111

从而可以理解为什么 有两种写法

error_reporting(E_ALL | E_STRICT ^ E_NOTICE);

error_reporting(E_ALL | E_STRICT & ~E_NOTICE);

 

 

 

发表评论

邮箱地址不会被公开。 必填项已用*标注