我允许用户在注册时定义他们的国家/地区。我将使用ajax和数据库中的国家/地区列表来填充选择选项。现在最好将这些代码硬编码到交换机中:
switch($country):
case 'United States':
$usercountry = 'United States';
break;
//etc
default: $usercountry = 'Not Set';
endswitch;
或者做一个foreach会更好吗?举个例子:
switch($country):
foreach($sitecountries as $countries):
case $countries:
$usercountry = $countries;
break;
default: $usercountry = 'Not Set';
endforeach;
endswitch;
使用一个代码与另一个代码是否有任何好处,授予第一个开关将是巨大的,所以第二个似乎击败了它。
问题太广泛:与使用硬编码中的值相比,使用foreach作为开关的好处是什么。
答案 0 :(得分:1)
第二个可能是更好的选择,但是如果可以的话,可以用开关代替:
$usercountry = 'Not Set';
foreach($sitecountries as $countries){
if($country == $usercountry){
$usercountry = $countries;
break;
}
}
答案 1 :(得分:1)
假设您为自己的国家/地区使用某种代码,可以使用数组进行映射并以这种方式映射:
$countries = array(
'United States'=>'us',
'Netherlands'=>'nl'
);
简单地使用:
$countries['United States'];
它将输出'us'
。
答案 2 :(得分:0)
为什么你不做类似的事情:
if($country)
{
$userCountry = $country;
}
else{
$userCountry = "Not Set";
}
另一种编码方式:
$userCountry = $country ?: "Not Set";