不完全是问题的答案…但是:保留数组,不要污染(全局)变量名称空间。
$englishMessages = array('helloWorld'=>'Hello World');
$spanishMessages = array('helloWorld'=>'Hola Mundo');
// wrap this in a nice function/method
$lang = $englishMessages;
// then use $lang for the output
''. $lang['helloWorld'] .'';
同一主题的一些变化:
function getMessages($language) {
static $l = array(
'en'=> array('helloWorld'=>'Hello World'),
'es' => array('helloWorld'=>'Hola Mundo')
);
//
return $l[$language];
}
$lang = getMessages('en');
echo ''. $lang['helloWorld'] .'';
或
function __($language, $id) {
static $l = array(
'en'=> array('helloWorld'=>'Hello World'),
'es' => array('helloWorld'=>'Hola Mundo')
);
//
return $l[$language][$id];
}
echo ''. __('es', 'helloWorld') .'';