最近看discuz代码,发现其中有好多二进制的运算
例如:
bindec((($forum['simple'] & 128) ? 1 : 0).(($forum['simple'] & 64) ? 1 : 0));
等等,有很多1为什么用到这么多二进制运算?
2是不是因为运算速度快呢?
3使用boolean不好吗?

解决方案 »

  1.   

    这与数据的组织方式有关估计 $forum['simple'] 是与权限相关的变量
    根据其值的不同,你示例的代码将得到 0 到 3 的数值
    后续代码中可能以其做索引进行预置的跳转*******条条大路通罗马,并不是什么都要问为什么的
    实现特定的功能,各人有各人的写法。这就是所谓的殊途同归
      

  2.   

    php的错误控制E_ERROR  E_WARNING  E_PARSE E_ALL……跟这个类似
    比如error_reporting(E_ALL ^ E_WARNING);
    你试试比较复杂的权限控制的时候,就能体会到好处了。
    括号里,最终结果,也是类似于boolean
      

  3.   

    不得不说,discuz产品的效率真的不错
    感慨戴志康的机遇,一套半盗版的产品,竟然让腾讯7000万美元收了