2012-09-18 34 views
0

我遇到了一個PHP和它的require_once語言構造的奇怪問題。PHP與require_once和字符串數組的奇怪混洗

我需要名爲EN-en.php的文件。它包含了英語,我的網站,我寫的是這樣的:

.... 
$lang['header']['loginbox']['menu'][1] = "contacts" ; 
$lang['header']['loginbox']['menu'][2] = "settings" ; 
.... 

然後我的用戶此代碼,包括我的文件在整個網站

require_once $langFile ; 

很容易,我認爲,$langFile is = "/var/www/webstite/langs/EN-en.php"。但是這裏出現了奇怪的部分。

當我使用

echo $lang['header']['loginbox']['menu'][1]; 

它打印出類似「Gontacts」 ......我不明白爲什麼,這不是唯一的案例。請有人能幫助我這個問題?

+0

編碼問題? – thatidiotguy

+0

我該如何解決它?爲什麼它會將'c'轉換爲'G'? –

+0

那麼一個編碼問題不會將c變成g。你說它打印的東西「像」,所以我認爲你是一般的。 – thatidiotguy

回答

0

您可能會覆蓋您自己的數組中的值。

看到這個簡單的例子:

$test = "some text"; 
$test['menu'] = 'extra'; 
var_dump($test); 
// produces: string(9) "eome text" 
// the first character - $test[0] - gets overwritten 
+0

您先生讓我的一天。非常感謝你,上帝保佑你! –

+0

@Claudio Ludovico Panetta不客氣。如果它適合您,請不要忘記將答案標記爲已接受。 – jeroen

+0

是的,我現在正在做。它的工作表示感謝;) –