PHP hat eine Ausnahme festgestellt
P粉739886290
P粉739886290 2023-09-15 09:45:00
0
1
509

Ich habe bitweise Operatoren in PHP getestet und bin auf ein sehr seltsames Problem gestoßen. Die folgenden Verfahren

<?php

  $foon = b'11111111';

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

sollte die folgende Ausgabe erzeugen

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

Die tatsächliche Ausgabe beträgt jedoch

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

Übersehe ich etwas sehr Offensichtliches oder liegt ein Fehler in PHP vor? Ich verwende PHP Version 8.2.4, installiert über XAMPP. Vielen Dank.

P粉739886290
P粉739886290

Antworte allen(1)
P粉022723606

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

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage