정수 처리 메커니즘 수정


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)