cari

Rumah  >  Soal Jawab  >  teks badan

PHP mengalami pengecualian

Saya telah menguji operator bitwise dalam PHP dan menghadapi masalah yang sangat pelik. Prosedur berikut

<?php

  $foon = b'11111111';

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

hendaklah menghasilkan output berikut

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

Namun, output sebenar ialah

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

Adakah saya terlepas pandang sesuatu yang sangat jelas, atau adakah terdapat pepijat dalam PHP? Saya menggunakan PHP versi 8.2.4 yang dipasang melalui XAMPP. Terima kasih banyak-banyak.

P粉739886290P粉739886290482 hari yang lalu533

membalas semua(1)saya akan balas

  • P粉022723606

    P粉0227236062023-09-16 00:08:15

    Tidak mengapa, saya faham. b'11111111' sebenarnya bukan perwakilan binari dalam PHP, walaupun ia tidak akan menimbulkan ralat. Menetapkan 0b11111111 kepada pembolehubah saya memberikan saya jawapan yang betul.

    balas
    0
  • Batalbalas