我想改变这个:
// use appropiate lang.xx.php file according to the value of the $lang
switch ($_SESSION['lang']) {
case 'en':
$lang_file = 'lang.en.php';
break;
case 'es':
$lang_file = 'lang.es.php';
break;
case 'zh-tw':
$lang_file = 'lang.zh-tw.php';
break;
case 'zh-cn':
$lang_file = 'lang.zh-cn.php';
break;
default:
$lang_file = 'lang.en.php';
}
像这样:
//include file for final output
include_once 'languages/lang.'.$_SESSION['lang'].'php;
(如果我执行上面的 include-final-output-thing,我认为 $lang_file
变量变得多余)
这样我就可以跳过整个 switch
部分。我尝试了其他组合,但它们似乎不起作用。有什么建议吗?
最佳答案
你可以这样做:
switch ($_SESSION['lang']) {
case 'en':
case 'es':
case 'zh-tw':
case 'zh-cn':
$lang_file = 'lang.'.$_SESSION['lang'].'.php';
break;
default:
$lang_file = 'lang.en.php';
}
或者你使用数组并使用in_array
查看值是否在数组中:
$languages = array('en', 'es', 'zh-tw', 'zh-cn');
if (in_array($_SESSION['lang'], $languages)) {
$lang_file = 'lang.'.$_SESSION['lang'].'.php';
} else {
$lang_file = 'lang.en.php';
}
您甚至可以在这两种情况下省略 en
,因为它是默认值。
关于php - 如何简化这个php switch语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2455969/