2016-06-28 33 views
1

我們使用以下代碼爲200個國家/地區分配了5個商店視圖。將國家代碼作爲數組和商店視圖作爲切換案例

現在我跟隨下面的代碼,其中IN, AT, IR, AU是國家代碼。 usa, canada是商店的意見。

這樣我需要分配每個國家代碼一個存儲視圖適用於所有200多個國家。有沒有什麼辦法可以使用數組,並只使用5個開關盒&在一個開關盒中包含許多國家代碼。

switch ($cnCode) { 

       case "IN": { 
        Mage::app()->setCurrentStore('usa'); 
        break; 
       } 


       case "AT": { 
        Mage::app()->setCurrentStore('usa'); 
        break; 
       } 

       case "IR": { 
        Mage::app()->setCurrentStore('usa'); 
        break; 
       } 


       case "AU": { 
        Mage::app()->setCurrentStore('canada'); 
        break; 
       } 
      } 

我也很好用任何其他方式代碼少。

回答

4

您可以使用in_array

if (in_array($enCode, array('IN', 'AT', 'IR'))) { 
    Mage::app()->setCurrentStore('usa'); 
} 
if (in_array($enCode, array('AU'))) { 
    Mage::app()->setCurrentStore('canada'); 
} 

或者你可以結合你的情況:

switch ($enCode) { 
    case 'IN': 
    case 'AT': 
    case 'IR': 
     Mage::app()->setCurrentStore('usa'); 
     break; 
    case 'AU': 
     Mage::app()->setCurrentStore('canada'); 
     break; 
} 
+0

感謝。你更喜歡哪一種'in_array'或'switch case' – fresher

+1

我認爲使用'switch'語句組合案例會更容易閱讀。使用'in_array'方法,你會得到很長的(寬)行,根據[psr-2](http://www.php-fig.org/psr/psr-2/)行應該有80個字符或者更少。 –

相關問題