我有以下设置:
class.staff.php
这定义了许多变量,我现在正在使用的变量是 $thisuser->getStaffLang();
class.language.php
(只是一个函数,不是一个类)这个文件基于我从 header.inc.php 传递给它的一个变量运行一个 sql 查询,它应该提取员工唯一的语言 ID。
函数是:
function translate($TRANSLATION){
$sql="SELECT $TRANSLATION FROM ".LANGUAGE_TABLE." WHERE LANGUAGE_ID=".$thisuser->getStaffLang;
$query = mysql_query($sql);
$translation = mysql_result($query,0);
print $translation;
}
header.inc.php
我正在使用此功能处理的第一个文件
示例翻译条目是:
translate('TEXT_WELCOME_BACK_STAFF');
我的问题是,当我在 $thisuser->getStaffLang 函数之外时;已填充但在函数内部为空。我真的不想一遍又一遍地将相同的变量传递给函数,因为有些文件中可能有超过 20 种翻译,这看起来像是很多冗余编码。有人能告诉我到底如何才能让函数识别该变量,而不必在调用函数时每次都将它传递给它吗?希望这不是一团糟。 :\
注意:class.language.php(函数有效和无效的地方)和 header.inc.php(变量单独起作用的地方)都需要 class.staff.php。所以他们都应该能够利用该代码/变量。
最佳答案
在translate()
的开头添加global $this user;
关于PHP变量没有传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7811124/