整型處理機制修改
一、無效八進位數字會報編譯錯誤
無效的八進位數字(包含大於7的數字)會報編譯錯誤,例如下面的程式碼會報錯:
$i = 0781; // 8 is not a valid octal digit!
舊版的PHP會把無效的數字忽略。
二、位移負的位置會產生異常
var_dump(1 >> -1); // ArithmeticError: Bit shift by negative number
三、左位移如果超出位數返回0
var_dump(1 << 64); // int(0)
舊版本的PHP運行結果和cpu架構有關係。例如x86會回傳1。
四、右位移超出會回傳0或-1.
var_dump(1 >> 64); // int(0) var_dump(-1 >> 64); // int(-1)