0

我正在编写一个多语言页面。

我有三个变量:

  • $helper->namejob_de(德语;来自数据库)
  • $helper->namejob_en(英语语言;来自数据库)
  • define("LANG", $TABS[$TABX]['lang']);
    config.php(包含“de”或“en”) 中定义语言

现在,如您所见,DB 内容以 _de 或 _en 结尾。

是否可以将这两个变量结合起来?

我试过了:

echo $$helper->namejob_.LANG

但是,显然这行不通。对于两个变量的这种“合并”还有其他选择吗?

编辑:
阅读所有评论后,我决定重构我的数据库/代码。它真的很脏,所以我会尝试另一种选择。不管怎么说,还是要谢谢你 :)

4

4 回答 4

3

你可以试试这个:

echo $helper->{"namejob_" . LANG};

它应该可以工作,但不是很清楚。

于 2013-04-17T09:58:29.500 回答
1

看一个简约的例子

<?php
class x
{
    function __construct()
    {
        $this->x_1 = 1;
        $this->x_2 = 3;
    }
}

$x = new x();
$y=1;
echo $x->{"x_".$y};
?>

您应该制作一个处理这种“肮脏”工作的类,在语言的构造函数中传递一个变量

于 2013-04-17T10:03:35.717 回答
0

您可以使用以下语法来执行此操作:$var_{$language};但是,您可能不想这样做。我建议使用数组或对象来封装这个问题。如果您必须组合字符串,您将永远无法找到它的设置位置。

于 2013-04-17T09:56:43.960 回答
0

我认为除了使用两个不同的变量来存储两种不同的语言之外,您还可以使用两个具有相同变量名的语言文件。包括当前活动的语言文件。这种方法用于 oscommerce。

于 2013-04-17T10:04:12.350 回答