Pengubahsuaian mekanisme pemprosesan integer


1. Nombor perlapanan tidak sah akan melaporkan ralat kompilasi

Nombor perlapanan tidak sah (termasuk nombor lebih daripada 7) akan melaporkan ralat kompilasi Sebagai contoh, kod berikut akan melaporkan ralat: ​​​

rreee

Versi lama. PHP akan mengabaikan nombor yang tidak sah.

2 Kedudukan dengan anjakan negatif akan menghasilkan pengecualian

$i = 0781; // 8 is not a valid octal digit!

3 Jika anjakan kiri melebihi bilangan digit, ia akan mengembalikan 0

 var_dump(1 >> -1);
 // ArithmeticError: Bit shift by negative number

Hasil berjalan versi lama PHP berkaitan dengan CPU. seni bina. Sebagai contoh, x86 akan mengembalikan 1.

4 Jika anjakan yang betul melebihi, ia akan kembali 0 atau -1.

var_dump(1 << 64); // int(0)