函数变量来自包含文件 - php

时间:2010-03-09 19:45:44

标签: php function variables

我没有找到一个很好的答案来解决我的问题,所以我开始了一个新主题。我有一个文件english.php,其中包含 $ lang ['fname'] =“名字”等变量; 。我还有header.php,其中包括english.php:include('english.php');.现在,header.php包含在另一个php页面中,比如说addInfo.php。如果我在addInfo.php中写道: echo $ lang ['fname']; 它会显示“名字”,但如果我在addInfo.php中编写一个函数,例如添加了函数(){echo $ lang ['fname'];} 然后添加(); (我也试过echo added())它不想显示值(“名字”)。有人知道这个样本(我认为)问题的解决方案。我准备尝试所有答案了。此致,StefanZ

2 个答案:

答案 0 :(得分:9)

当你这样写:

function added () {
    echo $lang['fname'];
} 

PHP将搜索函数本地的$lang变量:

  • 它不会看到在函数之外声明的全局函数。
  • 并且,由于没有$lang变量集,在函数内部,$lang['fname']将为null - 即在echo ed时它不会显示任何内容。< / LI>


要向PHP表明它应该使用函数外部的全局变量,需要在函数内声明变量global

function added () {
    global $lang;
    echo $lang['fname'];
} 


有关更多信息,请阅读PHP手册的 Variable scope部分

答案 1 :(得分:2)

你必须在你的函数中声明全局$语言

X

function added(){
   global $lang;

   echo $lang["fname"];
}