PHP - 组合变量

时间:2013-04-17 09:53:51

标签: php variables

我正在编写多语言页面。

我有三个变量:

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

现在,正如您所看到的,DB内容的结尾是_de或_en。

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

我试过了:

echo $$helper->namejob_.LANG

但是,显然这不起作用。这两个变量的“合并”还有其他选择吗?

修改
在阅读完所有评论后,我决定重构我的数据库/代码。它真的很脏,所以我会尝试另一种选择。无论如何,谢谢:)

4 个答案:

答案 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。