2013-04-17 49 views
0

我正在編寫多語言頁面。PHP - 組合變量

我有三個變量:

  • $helper->namejob_de(德語語言;從數據庫中來)
  • $helper->namejob_en(英語語言;從數據庫中來)
  • define("LANG", $TABS[$TABX]['lang']);
    定義語言在config.php(包含'de'或'en')

現在,如您所見,數據庫內容的結尾爲_de或_en。

是否可以將這兩個變量結合起來?

我已經試過:

echo $$helper->namejob_.LANG 

但是,這顯然是行不通的。有兩個變量的「合併」有其他選擇嗎?

編輯:
讀取所有我決定修改我的數據庫/代碼中的註釋後。這真的很髒,所以我會嘗試一個替代方案。無論如何,謝謝:)

+0

你在問[*變量變量*](http://php.net/manual/en/language.variables.variable.php)嗎? – deceze

+0

我有三個變量,是否可以合併這兩個變量?請問你指的是哪些變量? –

回答

0

您可以使用以下語法:$var_{$language};然而,你可能不想這樣做。我建議使用數組或對象來封裝這個問題。如果你必須組合字符串,你將永遠無法找出它的設置。

+0

讀完所有評論後,我決定重構我的數據庫/代碼。這真的很髒,所以我會嘗試一種替代方案。無論如何感謝:) – Marek123

3

你可以試試這個:

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

它應該工作,但它也不是很清楚。

+0

誰downvoted,爲什麼? –

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