从包含文件中的函数变量 - 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部分

+0

是的,如果你习惯于javascript或者在函数范围中自动允许外部定义的话,这可能会很棘手。 – UltimateBrent 2010-03-09 19:59:07

你必须在您的功能状态全球$ lang

ex。

function added(){ 
    global $lang; 

    echo $lang["fname"]; 
}