PHP 7+MySQL 8动态网站开发从入门到精通(视频教学版)
上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)