Php7升级问题与<<按位运算符

时间:2016-08-26 03:54:02

标签: php

我有以下代码在php 5.6中工作,但在php7升级后,它停止工作,你知道如何在PHP 7.0上做这个吗?

public function getChecksParam($array) {
    $v = 0;
    foreach ( $array as $param ) {
        $v |= 1 << $param - 1;
    }
    return $v;
}

1 个答案:

答案 0 :(得分:0)

升级后问题导致PHP似乎修复了一个错误,当它在无效的按位移位时默认为0

因此我必须在进行按位移位之前进行一些验证,请参阅下面的正确代码。

public function getChecksParam($array) {
    $v = 0;
    foreach ( $array as $param ) {
         if($param > 0 )
           $v |= 1 << $param - 1;
         else
           $v = 0;   
    }
    return $v;
}