我想在index.php文件中要求文件,并在这些文件中使用数组。 从哪里获取文件的树结构是:
根/郎/ NL /仪表板/如default.php
根/郎/ NL /仪表板/ users.php
这些文件的代码是
如default.php
// Default DASHBOARD language list
if (empty($lang) || !is_array($lang)){
$lang = [];
}
$lang = array_merge($lang, [
'DASH_LANG_DE' => 'Duits',
'DASH_LANG_FR' => 'Frans',
'DASH_LANG_GB' => 'Engels',
'DASH_LANG_NL' => 'Nederlands',
'DASH_SET_LANG' => 'Stel hier uw taal in'
]);
users.php
// Default USERS language list
if (empty($lang) || !is_array($lang)){
$lang = [];
}
$lang = array_merge($lang, [
'USERS_DEFAULT' => 'Gebruikers',
'USERS_CREATE_NEW' => 'Maak een nieuwe gebruiker aan',
'USERS_DELETE' => 'Delete de gebruiker',
'USERS_NAME' => 'Naam'
]);
index.php放在根目录中,代码如下
define ('LANG','lang/');
function lang_files($language,$path,$file){
foreach ($file as $value) {
if(file_exists(''.LANG.$language.'/'. $path .'/'. $value .'.php')){
require_once ''.LANG.$language.'/'. $path .'/'. $value .'.php' ;
}
else{
echo ''.LANG.$language.'/'. $path .'/'. $value .'.php <b>does not exist!!</b>' ;echo "<br>";
}
}
}
$language = "nl";
$path = 'dashboard';
$file =['default',
'users'
];
lang_files($language,$path,$file);
echo $lang['DASH_SET_LANG'];
当我开始工作时,我会将该函数作为一个方法放在我的类文件中,但首先它必须工作。
此时我无法使用
访问数组echo $ lang ['DASH_SET_LANG'];
当我直接需要文件时,我没有任何问题。
当我在函数中回显require_once部分时,我可以看到我文件的路径是正确的。
有人知道我哪里出错吗?
在我从@vvondra那里得到的帮助下,我能够找出出错的地方。
下面您将看到更改的功能。小改变。
function lang_files($language,$path,$file){
$lang = [];
foreach ($file as $value) {
if(file_exists(''.LANG.$language.'/'. $path .'/'. $value .'.php')){
require_once ''.LANG.$language.'/'. $path .'/'. $value .'.php' ;
}
else{
echo ''.LANG.$language.'/'. $path .'/'. $value .'.php <b>does not exist!!</b>' ;echo "<br>";
}
}
return $lang;
}
感谢@vvondra让我朝着正确的方向前进。
答案 0 :(得分:0)
php中的函数创建范围。这意味着在函数内部定义的任何变量在它的正文
之外都是不可见的function foo()
{
$bar = 1;
}
// Here $bar is undefined
foo();
// Still undefined
在您的情况下,您初始化$lang
函数中的lang_files
变量,因此它在外部不可见。您必须将其作为函数的返回值返回,并将其分配给另一个变量。
答案 1 :(得分:0)
StackOverflow的这个问题/答案可能会帮助您更轻松,更易于管理。
How to load return array from a PHP file?
基本上,您只需要在文件中返回数组,然后在索引中包含要加载的文件,将include分配给变量。
它就像一个魅力:)