从包含文件中的函数变量 - php
问题描述:
我还没有找到一个很好的答案,我的问题,所以我开始一个新的话题。我有文件english.php,它有像$ lang ['fname'] =“名字”的变量;。另外我有header.php,其中包括english.php:include('english.php');.现在,header.php被包含在另一个php页面中,让我们说addInfo.php。如果我在addInfo.php中写入:echo $ lang ['fname'];它显示我“名字”,但如果我在addInfo.php中写入函数,例如function added(){echo $ lang ['fname'];}然后添加(); (我也尝试回声添加())它不想显示值(“名字”)。有人知道这个样本(我认为)的问题的解决方案。我准备好尝试所有答案。问候,StefanZ从包含文件中的函数变量 - php
答
当你这样写:
function added() {
echo $lang['fname'];
}
PHP会为$lang
变量,函数的局部搜索:
- 不会看到这就是外部声明全局的功能。
- 并且因为没有
$lang
变量集,所以在函数内部,$lang['fname']
将是null
- 即当echo
编辑时它不会显示任何东西。
为了表示对PHP,它应该从功能外使用全局变量,需要声明的变量global
,里面的功能:
function added() {
global $lang;
echo $lang['fname'];
}
更多信息,您应该阅读PHP手册的Variable scope部分。
答
你必须在您的功能状态全球$ lang
ex。
function added(){
global $lang;
echo $lang["fname"];
}
是的,如果你习惯于javascript或者在函数范围中自动允许外部定义的话,这可能会很棘手。 – UltimateBrent 2010-03-09 19:59:07