我正在编写多语言页面。
我有三个变量:
$helper->namejob_de
(德语;来自数据库)$helper->namejob_en
(英语;来自数据库)define("LANG", $TABS[$TABX]['lang']);
config.php
(包含'de'或'en')现在,正如您所看到的,DB内容的结尾是_de或_en。
是否可以将这两个变量结合起来?
我试过了:
echo $$helper->namejob_.LANG
但是,显然这不起作用。这两个变量的“合并”还有其他选择吗?
修改
在阅读完所有评论后,我决定重构我的数据库/代码。它真的很脏,所以我会尝试另一种选择。无论如何,谢谢:)
答案 0 :(得分:3)
你可以试试这个:
echo $helper->{"namejob_" . LANG};
它应该有用,但不是很清楚。
答案 1 :(得分:1)
查看简约示例
<?php
class x
{
function __construct()
{
$this->x_1 = 1;
$this->x_2 = 3;
}
}
$x = new x();
$y=1;
echo $x->{"x_".$y};
?>
你应该创建一个处理这个“脏”工作的类,在语言的构造函数中传递一个变量
答案 2 :(得分:0)
您可以使用以下语法执行此操作:$var_{$language};
但是,您可能不希望这样做。我建议使用数组或对象来封装此问题。如果你必须组合字符串,你将永远无法找到它的设置位置。
答案 3 :(得分:0)
我认为除了使用两个不同的变量来存储两种不同的语言之外,您还可以使用两个具有相同变量名的语言文件。包括当前处于活动状态的语言文件。这种方法用于oscommerce。