整数処理機構の修正
1. 無効な 8 進数はコンパイル エラーを報告します
無効な 8 進数 (7 より大きい数値を含む) はコンパイル エラーを報告します。たとえば、次のコードはエラーを報告します:
$i = 0781; // 8 is not a valid octal digit!
古いバージョンの PHP は無効な数値を無視します。
2. 負の変位位置は例外を生成します
var_dump(1 >> -1); // ArithmeticError: Bit shift by negative number
3. 左変位が桁数を超える場合は、0
var_dump(1 << 64); // int(0)
古いバージョンのPHP の実行結果と CPU アーキテクチャが重要です。たとえば、x86 は 1 を返します。
4. 右の変位を超える場合は、0 または -1 が返されます。
var_dump(1 >> 64); // int(0) var_dump(-1 >> 64); // int(-1)