2012-04-15 3 views
0

PHP RGB-to-HEX 변환기를 쓰려고하는데 10과 15 사이에있는 경우 RGB 숫자를 문자로 변환하는 함수를 사용하려고합니다 (아니요, Dechex() "기능). 내가 지금 코딩 한 방법이 있습니다 :함수를 switch 문을 사용하여 PHP에서 변수를 변경하려면 어떻게해야합니까?

function convToHex(&$hexInt) 
{ 
    switch($hexInt){ 
     case 10: 
      $hexInt = "A"; 
      break; 
    } 
} 

//create six hexadecimal variables for "hexMain" 

$hex1 = intval($r/16); 
$hex2 = $r % 16; 
$hex3 = intval($g/16); 
$hex4 = $g % 16; 
$hex5 = intval($b/16); 
$hex6 = $b % 16; 

$rgb = "#" . $r . $g . $b; 

echo convToHex($hex1); 

문제는 내가 그것을 에코하려고 할 때, 값이 단지 "$의 hex1"을 변환하는 가장 좋은 방법이 될 것입니다 무엇 0으로 온다 것 " $ hex2 ","dechex() "를 사용하지 않고 계속 사용 하시겠습니까?

+0

압정 오버플로! –

+0

'$ r','$ g','$ b' 그리고'convToHex' 함수를 반환 할 때 어떻게 설정합니까? –

+0

왜 dechex()가 아닌가? – Starx

답변

1

함수에서 값 (이 경우 $ hexInt)을 반환해야합니다. 그러면 참조로 작업 할 필요가 없습니다. 함수가 원하기 때문에 당신이 참조로 전달하려면, 다음 변수를 변경하는 함수를 호출 할 필요가

echo convToHex($hex1); 

, 다음 (IT 에코 '

function convToHex($hexInt) { 
    // do things 
    return $hexInt; 
} 

echo convToHex($hexInt); 
1

귀하의 문제는이 라인에 t 변경 한 값을 반환합니다.

function rgb2hex($r, $g, $b) { 
    // takes ints $r, $g, $b in the range 0-255 and returns a hex color string 
    $hex_digits = "ABCDEF"; 
    $hex_string = ""; 

    $hex_string .= substr($hex_digits, $r/16, 1); 
    $hex_string .= substr($hex_digits, $r % 16, 1); 
    $hex_string .= substr($hex_digits, $g/16, 1); 
    $hex_string .= substr($hex_digits, $g % 16, 1); 
    $hex_string .= substr($hex_digits, $b/16, 1); 
    $hex_string .= substr($hex_digits, $b % 16, 1); 

    return "#" . $hex_string; 
} 

이 중 하나를 사용하기 : 원본 논리에 가까운 무언가를 원하는 경우,

function rgb2hex($r, $g, $b) { 
    return sprintf("#%02X%02X%02X", $r, $g, $b); 
} 

나 :

convToHex($hex1); 
echo $hex1; 

... 또한, 어떤 이유는 같은 것을 사용하지 여기에는 다음과 같은 내용이 포함됩니다.

$r = 12; 
$g = 234; 
$b = 45; 

$hex_string = rgb2hex($r, $g, $b); 
echo $hex_string . "\n"; 
+0

'echo $ hex1'이'$ hex1 = intval ($ r/16);을 반환하지 않는 이유는 무엇입니까? –

+0

그럴 거예요. –

+0

{echo $ hex1}은 문제가 아닙니다. 문제는 함수를 사용하여 9보다 큰 숫자를 A에서 시작하는 문자로 변환하려고 시도하는 것입니다. – MrMedia715

관련 문제