我正在重新構建我的php應用程序中的語言系統,以便更容易地創建翻譯。php - in_array在文件中包含數組時返回false
我做的一件事情就是將所有東西都轉換成一個大數組$ lang;這裏是什麼樣子的例子:
require_once "lang/en/lang.php";
調用$ LANG [「共同的:登錄」]
$lang['common:login'] = "Login";
$lang['common:signup'] = "Sign Up";
$lang['index:title'] = "Home Page";
$lang['messages:newmessages'] = "You have %s new messages";
我用下面的代碼加載它沒有問題wqork中,一旦我做了一個加載這些函數的函數,與之前我做過的其他方法相比,就會出現問題。
function outputLanguage($tag) {
global $lang;
//see if tag exists.
if (!in_array($tag, $lang)) {
return $tag." is an invalid language tag.";
} else {
return $lang[$tag];
}
}
看起來,in_array()不喜歡使用其他來源包含的數組。
我誠實地想要有一些驗證,以防有人犯了一個錯誤,那麼是否有人知道一個好的解決方案?
謝謝。
in_array()沒有按」 t知道或關心$ lang數組是從另一個源包含的;但肯定你應該測試的關鍵,而不是價值...和in_array()測試值 –
你的權利,不知道我在想什麼。 – Eman