1

私はこの機能を持っています

private function getCurrencyByCountry($country){
    switch($country){
        case "US": return "USD"; break;
        case "UA": return "UAH"; break;
        case "FR":
        case "DE":
        case "ES":
        case "IT":return "EUR";  break;
        default: return "USD-default";
    }
}

パラメータ「UA」を使用してこのメ​​ソッドを呼び出すと、この関数は「USD-default」を返します。なんで?

4

2 に答える 2

4

あなたはvar_dump($country); 前に行う必要があります、

switch($country){
        case "US": return "USD"; break;

なぜなら、私はかなり確信しているので、あなたはパラメータを通して「文字列」以上のものを渡しているのです。


または、以下のようなものも仕事をこなすので便利です。

<?php 
function foo($country) {
    $value = array(); 

       switch($country){
            case "US": 
            $value = "USD"; 
            break;
         case "UA": 
             $value = "UAH"; 
             break;
         case "FR":
         case "DE":
         case "ES":
         case "IT": 
             $value = "EUR"; 
             break;
             default: $value = "USD-default";
    }

    if(!empty($value)){
        return $value; 
        }

}

echo foo('Whatever...');

于 2013-03-24T13:38:45.073 に答える
1

の投稿へのコメントによると、文字列で長いスペースを渡していますphp NoOb。文字列からスペースにトリム機能を使用できます。trim

private function getCurrencyByCountry($country)
{
    $country = strtolower(trim($country));
    switch($country)
    {
        case "us":
            return "USD";

        case "ua":
            return "UAH";

        case "fr":
        case "de":
        case "es":
        case "it":
            return "EUR";

        default:
            return "USD-default";
    }
}
于 2013-03-24T14:07:38.890 に答える