我在访问包含文件中的数组时遇到问题。只有当我直接包含en.php时,代码才有效。也许我无法访问数组单词,因为en.php是"sub-included"?
index.php
<?php
include 'localization/langSwitcher.php';
echo $words['title'];
langSwitcher.php
<?php
function SetLanguage()
{
if(isset($_COOKIE['lang']))
{
switch ($_COOKIE['lang']) {
case 'en':
include 'localization/en.php';
break;
default:
include 'localization/en.php';
setcookie('lang', 'en', time() + 365 * 24 * 3600, '/');
break;
}
}
else
setcookie('lang', 'en', time() + 365 * 24 * 3600, '/');
}
SetLanguage();
en.php
<?php
$words = array(
'title' => 'Welcome on Trex where you can buy or sell via Internet!',
'' => ''
);
作为包含在函数中的文件,此函数中的所有变量在函数外都不可用。
因此,您应该使用global
关键字,例如:
$words = array();
function SetLanguage()
{
global $words; // here
if(isset($_COOKIE['lang']))
{
switch ($_COOKIE['lang']) {
case 'en':
include 'localization/en.php';
break;
default:
include 'localization/en.php';
setcookie('lang', 'en', time() + 365 * 24 * 3600, '/');
break;
}
}
else
setcookie('lang', 'en', time() + 365 * 24 * 3600, '/');
}
SetLanguage();
或者,您的函数可以返回$words
作为其执行的结果。