2012-05-12 62 views
0

所以我想使我的頁面具有多語言功能,如德語,英語和匈牙利語。我開始在PHP中學習OOP,現在我強迫自己在所有方面都使用OOP,當然不是一個好主意,但我嘗試學習。所以這是我到目前爲止:OOP多語言,使文件包括

<?php 

class class_lang { 

    private $language; 

    public function __construct() { 
     $this->language = $_GET['lang']; 
    } 

    public function select_lang($var); 

     return ('language_'.$this->select_lang($var)); 
} 

?> 

所以發生了什麼事情。在我的索引頁上,當我點擊1時,我得到了3個鏈接(國旗),我的班級從網址獲得了這樣的值:href =「index.php?lang = uk」。現在我不知道的是我如何使字符串:導致我的lang文件,我想包括看起來像language_uk.php,language_ge.php等...所以我只是想創建該字符串,並將其傳回給我索引頁中的值,所以我可以包括正確的文件。

+1

注意:不要將你的類命名爲class_whatever,並首先使用大寫字母;所以它應該是'班郎{}' – Jeroen

+0

謝謝,但任何想法如何使該字符串,先生? –

+0

是的,添加爲答案 – Jeroen

回答

0

如果我理解正確的話,這應該工作:

return 'language_' . $this->language; 
0

儘量使公共變量$語言, 結構可過濾和驗證的GET變種,保存在某個地方的對象(會話)進行交互對象 你可以使用其他方法是 ChangeLang SetLang LoadLangFile SaveToSession 許多其他..

0

(1)在PHP中,場成員重新聲明與領先的「$」,但後來,witouth它,並以「$ this->」作爲前綴。所以:

$language; 

變爲:

$this->language 

(2)額外,從方法頭刪除分號:

public function select_lang($var) 
{ 
    return ('language_' . $this->language($var)); 
} 

(3)額外添加一個時間上可變的方法那返回一個值,它的語法不是必需的,但是,可以讓你調試(「ToString」),並且避免很多問題:

public function select_lang($var) 
{ 
    $Result = ('language_' . $this->language) 
    return $Result; 
} 

乾杯。