2016-08-26 1 views
-2

다음 코드는 PHP 5.6에서 작동했지만 php7 업그레이드 후에는 작동을 멈추었습니다. PHP 7.0에서이 작업을 수행하는 방법을 알고 있습니까?<< 비트 연산자로 인한 Php7 업그레이드 문제

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

"작동을 멈춤"/해야 할 일/거기에서 확인 된 구체적인 문제는 어떻게 처리해야합니까? – mario

+0

왼쪽 똥 연산자라는 dev에 그것에 familier해야합니다. – mahen3d

+1

당신은 * left shit operator *라고 불리우시겠습니까? 나는 의심의 여지가있다 ... – Rasclatt

답변

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; 
} 
관련 문제