2013-04-17 4 views
0

Я кодирую многоязычную страницу.PHP - объединить переменные

У меня есть три переменные:

  • $helper->namejob_de (для немецкого языка, исходя из базы данных)
  • $helper->namejob_en (на английском языке, исходя из базы данных)
    и
  • define("LANG", $TABS[$TABX]['lang']);
    Определение языка в config.php (содержит «de» или «en»)

Теперь, как вы можете видеть, содержимое БД имеет окончание _de или _en.

Можно ли объединить эти две переменные?

Я пробовал:

echo $$helper->namejob_.LANG 

Но, очевидно, это не работает. Существуют ли другие варианты такого «слияния» двух переменных?

EDIT:
После прочтения всех комментариев я решил реорганизовать свою базу данных/код. Это действительно грязно, поэтому я попробую альтернативу. Спасибо в любом случае :)

+0

Вы запрашиваете [* переменные переменные *] (http://php.net/manual/en/language.variables.variable.php)? – deceze

+0

У меня есть три переменные, возможно ли объединить эти две переменные? Какие переменные вы имеете в виду? –

ответ

0

Вы можете сделать это со следующим синтаксисом: $var_{$language}; Однако вы можете не захотеть этого. Я предлагаю использовать массив или объект для инкапсуляции этой проблемы. Если вам нужно комбинировать строки, вы никогда не сможете узнать, где они были установлены.

+0

После прочтения всех комментариев я решил реорганизовать мою базу данных/код. Это действительно грязно, поэтому я попробую альтернативу. Спасибо в любом случае :) – Marek123

3

Вы можете попробовать это:

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

Он должен работать, но это не очень понятно.

+0

Кто ниспослан, и почему? –

1

См минималистичный пример

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

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

Вы должны сделать класс, который обрабатывает эту «грязную» работу, передать переменную в конструкторе для языка

0

Я думаю, что помимо использования двух различных переменных для хранения двух разных языках, вы можете использовать два языковых файла с одинаковыми именами переменных. Включите текущий языковой файл. Этот подход используется в oscommerce.

+0

После прочтения всех комментариев я решил реорганизовать мою базу данных/код. Это действительно грязно, поэтому я попробую альтернативу. Спасибо, в любом случае :) – Marek123

Смежные вопросы