脚本宝典收集整理的这篇文章主要介绍了PHP中的位操作和MySQL检索,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
例如,用户权限可能是0110(我的用户权限越来越多,所以这个长度可能会长一些)
该示例可能对应于以下内容:
0:用户无法在网站上发布新闻
1:用户可以在网站上发布新文章
1:用户可以编辑网站上的任何文章
0:用户无法从网站上删除文章
等(其他权限)
如果我将它存储在MysqL位字段中.我怎样才能在PHP中操作它?
例如,在PHP中有一种简单的方法来获取第3位并查看它是0还是1?
有没有一种简单的方法可以将第3位设置为0或1?
例如 :
$bITs = bindec('0110'); var_dump($bits & bindec('0100'));
将得到“4”(即非零 – 你可以认为是“ok”),因为$bits中的第三位被设置.
而且:
$bits = bindec('0010'); VAR_dump($bits & bindec('0100'));
会得到0 – 因为$bits中的第三位未设置.
当然,每次都不需要调用bindec – 我只是在这里使用它来使事情更容易阅读;我的第一个例子可以改写成这样的东西:
$bits = bindec('0110'); var_dump($bits & 1<<2);
为了使代码更容易理解,不要使用这样的魔术值,而是使用一些常量;例如 :
define('PERMISSION_TO_DO_X',1); define('PERMISSION_TO_DO_Y',1<<1); define('PERMISSION_TO_DO_Z',1<<2);
并使用它们:
$bits = bindec('0110'); if ($bits & PERMISSION_TO_DO_X) { echo "OK to do X<br />"; } if ($bits & PERMISSION_TO_DO_Y) { echo "OK to do Y<br />"; } if ($bits & PERMISSION_TO_DO_Z) { echo "OK to do Z<br />"; }
OK to do Y OK to do Z
因为:
以上是脚本宝典为你收集整理的PHP中的位操作和MySQL检索全部内容,希望文章能够帮你解决PHP中的位操作和MySQL检索所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。