2014-06-16 2 views
-1

많은 PHP 함수는 플래그에 정수 값이있는 상수를 사용합니다. 따라서 정수 값 : PHP 함수/클래스 또는 더 우아한 방식이 있는지정수 값으로 플래그 결정

48 = 32, 16

51 = 32, 16, 2, 1

난 호기심 위와 같이 정수를 분해하고 함수와 관련된 플래그를 더 잘 결정하는 프로세스를 역으로 수행하십시오.

[ 'flag name'=> int]와 같은 연관 배열을 설정 한 다음 모든 가능한 조합의 값을 더하기 위해 배열을 반복하면서 생각했지만 꽤 비효율적 인 것처럼 보입니다. 특히 12 개의 플래그를 처리 할 때 수백만 가지의 조합이 있습니다.

+1

비트 단위를'&, 감사합니다, 어떻게 PHP 세트를 고려하고 –

+0

@MarkBaker을보고 오류 수준에서 작동 당신, 이제 비트 연산자를 읽을 것입니다. – Devon

답변

2

당신은 비트를 사용할 수 있으며 값이 설정되어 있는지 : 운영자가 여기에 유용 할 수있는`

$a = 23; 
$sixteen = 16; 
$eight = 8; 
if($a & $sixteen) echo "the 16 bit is set"; 
if($a & $eight) echo "the 8 bit is set"; 
+0

완벽. 이것은 제가 생각했던 것보다 훨씬 나은 해결책입니다. – Devon

관련 문제