Rumah > Soal Jawab > teks badan
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粉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.