我正在尝试使用$ GLOBALS为我的应用程序定义一个国际字典。字符串位于不同的文件中,每种语言一个。像这样:
PT_BR.txt:
title=Meu aplicativo
usr=Usuário
EN_US.txt:
title=My app
usr=User
然后我有一个函数来读取txt文件并填充$ GLOBALS数组,其他函数从$ GLOBALS获取一个值并将其返回给脚本。两者都在functions.php中,它包含在每个必要的文件中。
// functions.php
function readDict($lang) {
$F = $lang.'.txt';
// (...)
$GLOBALS[$var] = $val;
}
function txt($line) {
if (isset($GLOBALS[$line])) {
return $GLOBALS[$line];
} else {
return "($line)";
}
}
当用户选择语言时,我调用main.php中的第一个函数:
readDict($language);
当我从main.php调用txt('some_variable')时,它可以正常工作。但是当我从另一个文件中调用它时,却没有。例如,当我打电话
include('functions.php');
echo txt('esp.col');
来自addEsp.php的,它看不到$ GLOBALS ['esp.col'],它在main.php中有效。为什么呢?
答案 0 :(得分:0)
$GLOBALS = [];
function readDict($lang) {
$F = $lang.'.txt';
// (...)
$GLOBALS[$var] = $val;
}
function txt($line) {
if (isset($GLOBALS[$line])) {
return $GLOBALS[$line];
} else {
return "($line)";
}
}
你可以试试这个