php – 使用bitcode

栏目: PHP · 发布时间: 5年前

内容简介:翻译自:https://stackoverflow.com/questions/22154793/working-with-bitcode

对于SO来说,这只是一点点OT,因为我不是要解决一个特定的问题,而只是为了理解某些事情的实现方式.但我是在代码之后,让我们看看它是怎么回事……

假设我们在一周中的每一天都有一个复选框,我们决定将这些复选框的任意组合存储为单个数字,这样:

0 = no days
  1 = Monday 
  2 = Tuesday
  4 = Wednesday
  8 = Thursday
 16 = Friday
 32 = Saturday
 64 = Sunday
127 = everyday

如何在 PHP 中实现该逻辑,以便如果我提交说“13”,PHP会知道只勾选周一,周三和周四复选框?

按位AND:

$input = 13;

if( $input & 1 ) {
  echo 'Monday';
}
if( $input & 2 ) {
  echo 'Tuesday';
}
if( $input & 4 ) {
  echo 'Wednesday';
}
// etc

编辑

您可以使用以下内容来避免使用ifs:

$input = 13;

$days = array('mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun');

for( $i=0; $i<7; $i++ ) {
    $daybit = pow(2,$i);
    if( $input & $daybit ) {
        echo $days[$i] . ' ';
    }
}

//output: mon wed thu

这两种方法不仅仅是这两种方法,而是“最佳”方式取决于您的结果/输出需要的方式.

翻译自:https://stackoverflow.com/questions/22154793/working-with-bitcode


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

设计模式之禅(第2版)

设计模式之禅(第2版)

秦小波 / 机械工业出版社 / 2014-2-25 / 89.00元

本书是设计模式领域公认的3本经典著作之一,“极具趣味,容易理解,但讲解又极为严谨和透彻”是本书的写作风格和方法的最大特点。第1版2010年出版,畅销至今,广受好评,是该领域的里程碑著作。深刻解读6大设计原则和28种设计模式的准确定义、应用方法和最佳实践,全方位比较各种同类模式之间的异同,详细讲解将不同的模式组合使用的方法。第2版在第1版的基础上有两方面的改进,一方面结合读者的意见和建议对原有内容中......一起来看看 《设计模式之禅(第2版)》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具