난이 변경하려면 : 이런 식으로 뭔가에이 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';
}
을 :
이//include file for final output
include_once 'languages/lang.'.$_SESSION['lang'].'php;
이 (내가 위의 포함 - 최종 출력 일을 할 경우 $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
를 사용 :
@Gumbo 우수 답변. 하지만 질문이 있습니다 : $ lang_file 변수를 사용하지 않고 파일을 직접 포함시키는 방법이 있는지 확실하지 않습니다 : include_once 'languages / lang.'. $ _ SESSION [ 'lang']. 'php; – alexchenco
@ janoChen : 그렇게 할 수 있습니다. 그러나'$ _SESSION [ 'lang']'이 설정되어 있지 않거나 유효한 값을 가지고 있지 않은 경우를 취해야합니다. 그렇다면'language/lang..php' 만 얻을 수 있습니다. 그러나'$ _SESSION [ 'lang']'이 항상 존재하고 유효한 값을 가지고 있다는 것을 확신한다면, 그렇게 할 수 있습니다. – Gumbo