我有以下代码在php 5.6中工作,但在php7升级后,它停止工作,你知道如何在PHP 7.0上做这个吗?
public function getChecksParam($array) {
$v = 0;
foreach ( $array as $param ) {
$v |= 1 << $param - 1;
}
return $v;
}
答案 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;
}