我有这个功能
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”。 为什么呢?
答案 0 :(得分:4)
你应该使用do 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...');
答案 1 :(得分:1)
根据你对php NoOb
帖子的评论,你在字符串中传了一个很长的空格。您可以使用trim函数来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";
}
}