PHP遇到了一個異常狀況
P粉739886290
P粉739886290 2023-09-15 09:45:00
0
1
507

我一直在測試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賦值給我的變數會得到正確的答案。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板