4

以下のコードを実行するためのより良い方法に興味があります。繰り返しが多く、削減したいと思います。何か提案はありますか?

変数変数で何かをしようとしていましたが、それを機能させることができませんでした。

だから基本的に私は私が得る色の名前の束を持っています$_GET[color-name-here']

目標は、色のコードを新しい色のコードに設定することです。したがって、URLを使用してred、色のコードをカラーコードに設定できるので、次のgreenようred's valueになります00FF00

// Get color and color replacement values from URL
// get_value_or is ran through this code...
// isset($_GET[$key]) && !empty($_GET[$key]) ? $_GET[$key] : $default;
$red = get_value_or('red', null);
$orange = get_value_or('orange', null);
$yellow = get_value_or('yellow', null);
$green = get_value_or('green', null);
$turquoise = get_value_or('turquise', null);
$blue = get_value_or('blue', null);
$purple = get_value_or('purple', null);
$pink = get_value_or('pink', null);
$white = get_value_or('white', null);


// Define Default Color Name and Hexcode values
$colorsArray = array(
    'red' => 'FF0000',
    'orange' => 'FF5000',
    'yellow' => 'FFF200',
    'green' => '00FF00',
    'turquoise' => '00F0C8',
    'blue' => '0064FF',
    'purple' => '9F00FF',
    'pink' => 'FF0082',
    'white' => 'FFFFFF'
);



// Iterate Color Array and Set New Color Values if they exist
foreach($colorsArray as $colorName => $colorCode){

    // Do something to set each color Name with a New color code, if that color name has a value set

}


// Right now I am doing it manually for each color name, all 9+ like this...

//Set Reds NEW color value
if(isset($red)){
    $colorsArray['red'] = $colorsArray[$red];
}

//Set oranges NEW color value
if(isset($orange)){
    $colorsArray['orange'] = $colorsArray[$orange];
}

//Set yellows NEW color value
if(isset($yellow)){
    $colorsArray['yellow'] = $colorsArray[$yellow];
}

少ないコードですべての色を設定する方法はありますか?

$_GET 変数を使用して URL に新しい値が設定されている場合にのみ、色のコードを更新する必要があります。

PS) この質問の適切なタイトルがわかりませんでした。より良いタイトルがあれば自由に変更してください。

4

2 に答える 2

3

スーパーグローバルを使用して、すべてのグローバル変数にアクセスできます$GLOBALS。だからあなたはこれを行うことができます:

foreach ($colorsArray as $colorName => $colorCode) {
    if (isset($GLOBALS[$colorName]) {
        $colorsArray[$colorName] = $GLOBALS[$colorName];
    }
}

$GLOBALS に関する詳細情報。

于 2013-08-02T01:06:09.787 に答える