Modification du mécanisme de traitement des entiers


1. Les nombres octaux invalides signaleront une erreur de compilation

Les nombres octaux invalides (y compris les nombres supérieurs à 7) signaleront une erreur de compilation. Par exemple, le code suivant signalera une erreur : ​​​

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

Anciennes versions de. PHP ignorera les numéros invalides.

2. La position avec un déplacement négatif produira une exception

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

3 Si le déplacement à gauche dépasse le nombre de chiffres, il renverra 0

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

Les résultats d'exécution de l'ancienne version de PHP sont liés au CPU. architecture. Par exemple, x86 renverra 1.

4. Si le bon déplacement dépasse, il renverra 0 ou -1.

var_dump(1 >> 64);  // int(0)
var_dump(-1 >> 64); // int(-1)