PHP遇到了一个异常情况
P粉739886290
P粉739886290 2023-09-15 09:45:00
0
1
455

我一直在测试PHP中的位运算符,并遇到了一个非常奇怪的问题。以下程序

<?php

  $foon = b'11111111';

  for ($i = 0; $i <= 7 ; $i++) {
    $foo = (($foon & (1 << $i)) > 0) ? 1 : 0;
    echo "目标的第" . $i . "位是" . $foo . "<br />" . PHP_EOL;
  }

应该产生以下输出

目标的第0位是1
目标的第1位是1
目标的第2位是1
目标的第3位是1
目标的第4位是1
目标的第5位是1
目标的第6位是1
目标的第7位是1

然而,实际输出是

目标的第0位是1
目标的第1位是1
目标的第2位是1
目标的第3位是0
目标的第4位是0
目标的第5位是0
目标的第6位是1
目标的第7位是1

我是否忽略了一些非常明显的东西,还是PHP中存在一个错误?我使用的是通过XAMPP安装的PHP版本8.2.4。非常感谢。

P粉739886290
P粉739886290

全部回复(1)
P粉022723606

没关系,我搞清楚了。b'11111111'实际上不是PHP中的二进制表示法,尽管它不会报错。将0b11111111赋值给我的变量会得到正确的答案。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!