2013-05-16 56 views
-1

我正在設置切換爲選擇多個位置的字體系列。例如對於bodyparagraph。兩者都有自己的選擇下拉菜單,但有相同的字體系意味着身體像arial,tahoma,verdana比段也具有相同的家庭。PHP:切換檢查多個變量的相同值

因此,對於身體,我已經設置了開關盒並且工作正常,但是現在我想爲段落使用相同的字體系列。那麼我怎樣才能爲兩個不同的變量使用相同的開關盒呢?

$body = get_opt('body_fonts'); 
$para = get_opt('para_fonts'); 

switch ($body) { 
    case 'Arial': 
     $body_fonts = 'Arial, Helvetica, sans-serif'; 
     break; 

    case 'Lucida': 
     $body_fonts = '"Lucida Sans Unicode", "Lucida Grande", sans-serif'; 
     break; 

    case 'Roboto': 
     $body_fonts = '"Roboto", sans-serif;'; 
     break; 

    case 'Tahoma': 
     $body_fonts = 'Tahoma, Geneva, sans-serif'; 
     break; 

    case 'Verdana': 
     $body_fonts = 'Verdana, Geneva, sans-serif'; 
     break; 

    default: 
     $body_fonts = 'Arial, Helvetica, sans-serif'; 
     break; 
} 
+2

你忘了問一個問題。 –

+0

對不起!我做了一些撤消,並錯誤地刪除了一些文字..添加行 –

回答

3

你只需要在函數中附上代碼:

function getfont($what) { 
    switch ($what) { 
     case 'Arial': 
      $fonts = 'Arial, Helvetica, sans-serif'; 
      break; 

     case 'Lucida': 
      $fonts = '"Lucida Sans Unicode", "Lucida Grande", sans-serif'; 
      break; 

     case 'Roboto': 
      $fonts = '"Roboto", sans-serif;'; 
      break; 

     case 'Tahoma': 
      $fonts = 'Tahoma, Geneva, sans-serif'; 
      break; 

     case 'Verdana': 
      $fonts = 'Verdana, Geneva, sans-serif'; 
      break; 

     default: 
      $fonts = 'Arial, Helvetica, sans-serif'; 
      break; 
    } 
    return $fonts; 
} 

$body_fonts = getfont($body); 
$para_fonts = getfont($para); 
1

你可以使用一個循環可變的變量:

$elements = array($body, $para); 

foreach($elements as $element) { 
    switch ($element) { 
     case 'Arial': 
      ${$element .'_fonts'} = 'Arial, Helvetica, sans-serif'; 
      break; 

     #other case statements here 
    } 
} 

我不知道這是一個很不錯的方法,但。您可能想要將代碼重構爲更多功能。

2

一個更好的辦法可能是讓地圖。

$fontMap = array(
    'Arial'=>'Arial, Helvetica, sans-serif', 
    'Lucida'=>'"Lucida Sans Unicode", "Lucida Grande", sans-serif', 
    'Roboto'=> '"Roboto", sans-serif', 
    'Tahoma'=>'Tahoma, Geneva, sans-serif', 
    'Verdana'=>'Verdana, Geneva, sans-serif', 
    'default'=>'Arial, Helvetica, sans-serif' 
); 

然後,你可以做這樣的事情

$bodyFonts = array_key_exists($body, $fontMap)?$fontMap[$body]:$fontMap["default"]; 
$paraFonts = array_key_exists($para, $fontMap)?$fontMap[$para]:$fontMap["default"];