Je voudrais changer ceci:Comment simplifier cette déclaration de commutateur php?
// 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';
}
en quelque chose comme ceci:
//include file for final output
include_once 'languages/lang.'.$_SESSION['lang'].'php;
(je pense que la variable $lang_file
devient redondante si je fais l'inclure-sortie-finale chose ci-dessus)
Pour que je puisse passer la partie entière switch
. J'ai essayé d'autres combinaisons mais elles ne semblent pas fonctionner. Aucune suggestion?
@Gumbo Excellente réponse. Mais j'ai une question: est-il possible d'inclure le fichier directement sans utiliser la variable $ lang_file quelque chose comme ça n'est pas sûr: include_once 'languages / lang.'. $ _ SESSION ['lang']. 'Php; – alexchenco
@janoChen: Il est possible de le faire de cette façon. Mais vous devriez prendre le cas que '$ _SESSION ['lang']' n'est pas défini ou ne contient pas une valeur valide. Ensuite, vous obtiendrez juste 'languages / lang..php'. Mais si vous vous assurez que $ _SESSION ['lang'] 'existe toujours et a une valeur valide, vous pouvez le faire de cette façon. – Gumbo