Ваш подход нормально. Однако вы сравниваете 7 раз переменную $day
, независимо от того, была ли она сопоставлена ранее.
рефакторинга вашего кода будет выглядеть следующим образом:
if($day == "Mon"){
$day = "Mån";
}elseif($day == "Tue"){
$day = "Tis";
}elseif($day == "Wed"){
$day = "Ons";
}elseif($day == "Thu"){
$day = "Tor";
}elseif($day == "Fri"){
$day = "Fre";
}elseif($day == "Sat"){
$day = "Lör";
}else{
$day = "Sön";
}
Таким образом, если $day
было помечено он избегает выполнения другого сравнения.
В качестве альтернативы вы можете использовать переключатель случае это позволит избежать вам вводить повторяющиеся коды:
$day = "Tue";
switch($day){
case "Mon":
$day = "Mån";
break;
case "Tue":
$day = "Tis";
break;
case "Wed":
$day = "Ons";
break;
case "Thu":
$day = "Tor";
break;
case "Fri":
$day = "Fre";
break;
case "Sat":
$day = "Lör";
break;
case "Sun":
$day = "Sön";
break;
}
echo $day;
Лучшим способом будет использовать массив этого избежать вас выполнения условных операторов (если ElseIf и случай)
$days = array(
"Mon" => "Mån",
"Tue" => "Tis",
"Wed" => "Ons",
"Thu" => "Tor",
"Fri" => "Fre",
"Sat" => "Lör",
"Sun" => "Sön"
);
echo $days["Fri"];
Вы можете использовать 'IF'' ELSEIF'. –
Пожалуйста, посмотрите на этот вопрос: http://stackoverflow.com/questions/8744952/php-how-to-format-a-given-datetime-object-considering-localegetdefault – chapay