上QQ阅读APP看书,第一时间看更新
3.6 PHP 7的新变化1——整数类型处理机制的修改
PHP 7以前的版本里,如果向八进制数传递了一个非法数字,例如8或9,则后面其余数字会被忽略。在PHP 7中,将会出现编译错误。
例如下面的代码将会报错:
$a = 0792; // 9是无效的八进制数字
在PHP 7中,如果位移负的位置,将会产生异常,例如:
var_dump(1 >> -1); // ArithmeticError: Bit shift by negative number
在PHP 7中,左位移如果超出位数,就会返回为0,例如:
var_dump(1 << 64); // int(0)
在PHP 7之前的版本中,运行结果和CPU的架构有关系,比如x86会返回1。
在PHP 7中,右位移如果超出位数,就会返回0或者-1,例如:
var_dump(1 >> 64); // int(0) var_dump(-1 >> 64); // int(-1)